/
makefile
62 lines (52 loc) · 1.4 KB
/
makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
TARGET = main
PKG = foo.tar.bz2
#EXTRAS = dull.c.null
SRC_EXT = .c
OBJ_EXT = .o
HDR_EXT = .h
COMPILER = gcc
COMPILER_FLAGS = ${CFLAGS}
SRC = $(shell ls *${SRC_EXT})
HDR = $(shell ls *${HDR_EXT})
OBJ = $(shell ls *${SRC_EXT} | sed s\/${SRC_EXT}$$\/${OBJ_EXT}\/)
all: ${OBJ}
${COMPILER} ${COMPILER_FLAGS} -o ${TARGET} ${OBJ}
%${OBJ_EXT}: %${SRC_EXT}
${COMPILER} ${COMPILER_FLAGS} -c $< -o $@
pkg:
@case "${PKG}" in \
*.zip) \
pkgdir=$(shell echo ${PKG} | sed s\/.zip$$\/\/); \
mkdir $$pkgdir &> /dev/null; \
cp ${SRC} ${HDR} $$pkgdir &> /dev/null; \
cp -r ${EXTRAS} $$pkgdir &> /dev/null; \
zip -r ${PKG} $$pkgdir; \
rm -rf $$pkgdir;; \
*.tar.gz) \
pkgdir=$(shell echo ${PKG} | sed s\/.tar.gz$$\/\/); \
mkdir $$pkgdir &> /dev/null; \
cp ${SRC} ${HDR} $$pkgdir &> /dev/null; \
cp -r ${EXTRAS} $$pkgdir &> /dev/null; \
tar cfvz $$pkgdir; \
rm -rf ${PKG} $$pkgdir;; \
*.tar.bz2) \
pkgdir=$(shell echo ${PKG} | sed s\/.tar.bz2$$\/\/); \
mkdir $$pkgdir &> /dev/null; \
cp ${SRC} ${HDR} $$pkgdir &> /dev/null; \
#cp -r ${EXTRAS} $$pkgdir &> /dev/null; \
tar cfvj ${PKG} $$pkgdir; \
rm -rf $$pkgdir;; \
esac
clean:
@if `test -e ${TARGET}`; then \
rm ${TARGET}; \
fi
@for file in ${OBJ}; do \
if `test -e $$file`; \
then rm $$file; \
fi \
done
@if `test -e ${PKG}`; then \
rm ${PKG}; \
fi
.PHONY: clean pkg