1
0
mirror of https://github.com/ioacademy-jikim/debugging synced 2026-08-11 16:32:58 +00:00

first commit

This commit is contained in:
jikim
2015-12-13 22:34:58 +09:00
commit 0b589c7986
9455 changed files with 4350134 additions and 0 deletions
+8
View File
@@ -0,0 +1,8 @@
// foo.c
#include <stdio.h>
#include <foo.h>
void foo()
{
printf("foo : %d\n", FOO);
}
+8
View File
@@ -0,0 +1,8 @@
// goo.c
#include <stdio.h>
#include <goo.h>
void goo()
{
printf("goo : %d\n", GOO);
}
+5
View File
@@ -0,0 +1,5 @@
// foo.h
#define FOO 100
void foo();
+5
View File
@@ -0,0 +1,5 @@
// goo.h
#define GOO 200
void goo();
+11
View File
@@ -0,0 +1,11 @@
// main.c
#include <stdio.h>
#include <foo.h>
#include <goo.h>
int main()
{
foo();
goo();
return 0;
}
+16
View File
@@ -0,0 +1,16 @@
# makefile1
# 변수 도입
INCPATH=./include
app : main.o foo.o goo.o
cc -o app main.o foo.o goo.o
main.o : main.c $(INCPATH)/foo.h $(INCPATH)/goo.h
cc -c main.c -I$(INCPATH)
foo.o : foo.c $(INCPATH)/foo.h
cc $(CFLAGS) -c foo.c -I$(INCPATH)
goo.o : goo.c $(INCPATH)/goo.h
c $(CFLAGS) -c goo.c -I$(INCPATH)
+21
View File
@@ -0,0 +1,21 @@
# makefile2
# 컴파일러와 옵션도 변수로 처리
INCPATH=./include
CC=cc
CFLAGS=-Wall -I$(INCPATH)
app : main.o foo.o goo.o
$(CC) $(CFLAGS) -o app main.o foo.o goo.o
main.o : main.c $(INCPATH)/foo.h $(INCPATH)/goo.h
$(CC) $(CFLAGS) -c main.c
foo.o : foo.c $(INCPATH)/foo.h
$(CC) $(CFLAGS) -c foo.c
goo.o : goo.c $(INCPATH)/goo.h
$(CC) $(CFLAGS) -c goo.c
+27
View File
@@ -0,0 +1,27 @@
# makefile3
# all 지시어에서 getobj app putobj가 추가된것을 설명
INCPATH=./include
OBJPATH=./obj
CC=cc
CFLAGS=-Wall -I$(INCPATH)
all: getobj app putobj
app : main.o foo.o goo.o
$(CC) $(CFLAGS) -o app main.o foo.o goo.o
main.o : main.c $(INCPATH)/foo.h $(INCPATH)/goo.h
$(CC) $(CFLAGS) -c main.c
foo.o : foo.c $(INCPATH)/foo.h
$(CC) $(CFLAGS) -c foo.c
goo.o : goo.c $(INCPATH)/goo.h
$(CC) $(CFLAGS) -c goo.c
putobj:
-mv *.o $(OBJPATH) 2>/dev/null
getobj:
-mv $(OBJPATH)/*.o . 2>/dev/null
+37
View File
@@ -0,0 +1,37 @@
# makefile4
# getobj putobj에서 쉘 스크립트를 추가한 내용 설명
INCPATH=./include
OBJPATH=./obj
CC=cc
CFLAGS=-Wall -I$(INCPATH)
all: getobj app putobj
app : main.o foo.o goo.o
$(CC) $(CFLAGS) -o app main.o foo.o goo.o
main.o : main.c $(INCPATH)/foo.h $(INCPATH)/goo.h
$(CC) $(CFLAGS) -c main.c
foo.o : foo.c $(INCPATH)/foo.h
$(CC) $(CFLAGS) -c foo.c
goo.o : goo.c $(INCPATH)/goo.h
$(CC) $(CFLAGS) -c goo.c
putobj:
if [ ! -d $(OBJPATH) ]; then \
mkdir $(OBJPATH); \
fi
-mv *.o $(OBJPATH) 2>/dev/null
getobj:
@if [ ! -d $(OBJPATH) ]; then \
mkdir $(OBJPATH); \
fi
-mv $(OBJPATH)/*.o . 2>/dev/null
+57
View File
@@ -0,0 +1,57 @@
# makefile5
# install 추가된것.
# install은 자동으로 실행되지 않으므로
# make install 이 필요하다는것을 설명
INSTPATH=./bin
INCPATH=./include
OBJPATH=./obj
CC=cc
CFLAGS=-Wall -I$(INCPATH)
COND1=`stat app 2>/dev/null | grep Modify`
COND2=`stat $(INSTPATH) 2>/dev/null | grep Modify`
all: getobj app putobj
app : main.o foo.o goo.o
$(CC) $(CFLAGS) -o app main.o foo.o goo.o
main.o : main.c $(INCPATH)/foo.h $(INCPATH)/goo.h
$(CC) $(CFLAGS) -c main.c
foo.o : foo.c $(INCPATH)/foo.h
$(CC) $(CFLAGS) -c foo.c
goo.o : goo.c $(INCPATH)/goo.h
$(CC) $(CFLAGS) -c goo.c
putobj:
@if [ ! -d $(OBJPATH) ]; then \
mkdir $(OBJPATH); \
fi
@-mv *.o $(OBJPATH) 2>/dev/null
getobj:
@if [ ! -d $(OBJPATH) ]; then \
mkdir $(OBJPATH); \
fi
@-mv $(OBJPATH)/*.o . 2>/dev/null
install:
@if [ ! -d $(INSTPATH) ]; then \
mkdir $(INSTPATH); \
fi
@if [ "$(COND1)" != "$(COND2)" ];\
then\
cp -p ./app $(INSTPATH)/app 2>/dev/null;\
chmod 700 $(INSTPATH)/app ;\
echo "Installed in" $(INSTPATH)/app;\
fi
+61
View File
@@ -0,0 +1,61 @@
# makefile6
# make cleanall Ãß°¡
INSTPATH=./bin
INCPATH=./include
OBJPATH=./obj
CC=cc
CFLAGS=-Wall -I$(INCPATH)
COND1=`stat app 2>/dev/null | grep Modify`
COND2=`stat $(INSTPATH) 2>/dev/null | grep Modify`
all: getobj app putobj
app : main.o foo.o goo.o
$(CC) $(CFLAGS) -o app main.o foo.o goo.o
main.o : main.c $(INCPATH)/foo.h $(INCPATH)/goo.h
$(CC) $(CFLAGS) -c main.c
foo.o : foo.c $(INCPATH)/foo.h
$(CC) $(CFLAGS) -c foo.c
goo.o : goo.c $(INCPATH)/goo.h
$(CC) $(CFLAGS) -c goo.c
putobj:
@if [ ! -d $(OBJPATH) ]; then \
mkdir $(OBJPATH); \
fi
@-mv *.o $(OBJPATH) 2>/dev/null
getobj:
@if [ ! -d $(OBJPATH) ]; then \
mkdir $(OBJPATH); \
fi
@-mv $(OBJPATH)/*.o . 2>/dev/null
install:
@if [ ! -d $(INSTPATH) ]; then \
mkdir $(INSTPATH); \
fi
@if [ "$(COND1)" != "$(COND2)" ];\
then\
cp -p ./app $(INSTPATH)/app 2>/dev/null;\
chmod 700 $(INSTPATH)/app ;\
echo "Installed in" $(INSTPATH)/app;\
fi
cleanall:
@-rm app
@-rm -r $(OBJPATH)
@-rm -r $(INSTPATH)
@ echo cleanall!