master
parent
e11f54f3a1
commit
7f5c6446f7
@ -1,2 +1,3 @@ |
||||
*.png |
||||
test |
||||
obj/** |
@ -1,7 +1,17 @@ |
||||
CC = gcc
|
||||
LDFLAGS = -lm -lgrapheme -lSDL2 -lGLEW -lGL
|
||||
CFLAGS = -g -Wall -Wextra -pedantic
|
||||
SOURCE = main.c font.c cache.c hash.c util.c ren.c
|
||||
HEADER = font.h hash.h cache.h util.h ren.h
|
||||
|
||||
test: ${HEADER} ${SOURCE} |
||||
gcc ${CFLAGS} ${LDFLAGS} ${SOURCE} -o test
|
||||
.PHONY: clean all |
||||
all: test |
||||
|
||||
cache.o: cache.c cache.h hash.h font.h util.h |
||||
font.o: font.c font.h stb_truetype.h stb_image_write.h util.h cache.h |
||||
hash.o: hash.c hash.h util.h |
||||
main.o: main.c ren.h util.h |
||||
ren.o: ren.c util.h font.h ren.h stack.h |
||||
util.o: util.c util.h |
||||
test: cache.o font.o hash.o main.o ren.o util.o |
||||
${CC} ${LDFLAGS} -o test cache.o font.o hash.o main.o ren.o util.o
|
||||
clean: |
||||
rm -f cache.o font.o hash.o main.o ren.o util.o
|
||||
|
@ -0,0 +1,44 @@ |
||||
#!/bin/sh |
||||
|
||||
genobj() { |
||||
#echo "$1" | sed -e 's/^/obj\//' -e 's/\.c/\.o/' |
||||
echo "$1" | sed -e 's/\.c/\.o/' |
||||
} |
||||
|
||||
genrule() { |
||||
#gcc -MM "$1" | sed 's/^/obj\//' |
||||
gcc -MM "$1" |
||||
} |
||||
|
||||
|
||||
mkdir -p obj |
||||
rm -f objlist |
||||
|
||||
cat > Makefile << EOF |
||||
CC = gcc |
||||
LDFLAGS = -lm -lgrapheme -lSDL2 -lGLEW -lGL |
||||
CFLAGS = -g -Wall -Wextra -pedantic |
||||
|
||||
.PHONY: clean all |
||||
all: test |
||||
|
||||
EOF |
||||
|
||||
for f in *.c; do |
||||
genrule $f >> Makefile |
||||
genobj $f >> objlist |
||||
done |
||||
|
||||
mainrule='test: ' |
||||
linkcmd=' ${CC} ${LDFLAGS} -o test ' |
||||
cleanrule='clean: |
||||
rm -f ' |
||||
while IFS="" read -r line; do |
||||
mainrule="$mainrule $line" |
||||
linkcmd="$linkcmd $line" |
||||
cleanrule="$cleanrule $line" |
||||
done < objlist |
||||
|
||||
echo "$mainrule" >> Makefile |
||||
echo "$linkcmd" >> Makefile |
||||
echo "$cleanrule" >> Makefile |
@ -0,0 +1,6 @@ |
||||
cache.o |
||||
font.o |
||||
hash.o |
||||
main.o |
||||
ren.o |
||||
util.o |
Binary file not shown.
Loading…
Reference in new issue