-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile.mac
73 lines (57 loc) · 2.17 KB
/
Makefile.mac
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
63
64
65
66
67
68
69
70
71
72
73
CC=clang
INCPATH=./src
OPTFLAGS=-O4
MODE=release
CFLAGS=${OPTFLAGS} -Wall -fPIC -I${INCPATH} -std=c99 -fvisibility=hidden
RM=rm -rf
MKDIR=mkdir -p
OBJDIR=./obj
BINDIR=./bin
SRC=./src
OBJS=${OBJDIR}/crc32.o ${OBJDIR}/md4.o ${OBJDIR}/md5.o ${OBJDIR}/sha1.o
ifeq (${MODE}, debug)
OPTFLAGS=-g -O0
endif
none: ;
.PHONY: none all clean dist-clean
${shell [ -d ${BINDIR} ] || mkdir -p ${BINDIR}}
${shell [ -d ${OBJDIR} ] || mkdir -p ${OBJDIR}}
${OBJDIR}/crc32.o: ${SRC}/core/crc32.h ${SRC}/core/crc32.c
${OBJDIR}/md4.o: ${SRC}/core/md4.h ${SRC}/core/md4.c
${OBJDIR}/md5.o: ${SRC}/core/md5.h ${SRC}/core/md5.c
${OBJDIR}/sha1.o: ${SRC}/core/sha1.h ${SRC}/core/sha1.c
${OBJDIR}/test.o: ${SRC}/mac/test.c
${OBJDIR}/hasher.o: ${SRC}/mac/hasher.c
${OBJDIR}/libhasher.o: ${SRC}/mac/libhasher.c ${SRC}/mac/libhasher.h
${OBJDIR}/libhashertest.o: ${SRC}/mac/libhashertest.c
obj/%.o:
${CC} ${CFLAGS} -c ${subst .h,.c,$<} -o ${OBJDIR}/$*.o
mactest: ${BINDIR}/mactest
macrelease: ${BINDIR}/macrelease
hasher: ${BINDIR}/jmmhasher
libhasher: ${BINDIR}/libhasher.dylib
libhashertest: ${BINDIR}/libhashertest ${BINDIR}/libhashertest.py
${BINDIR}/mactest ${BINDIR}/macrelease: ${OBJS} ${OBJDIR}/test.o
${CC} ${CFLAGS} ${OBJS} ${OBJDIR}/test.o -o ${BINDIR}/${@F}
${BINDIR}/jmmhasher: ${OBJS} ${OBJDIR}/hasher.o
${CC} ${CFLAGS} ${OBJS} ${OBJDIR}/hasher.o -o ${BINDIR}/${@F}
${BINDIR}/libhasher.dylib: ${OBJS} ${OBJDIR}/libhasher.o
${CC} ${CFLAGS} -dynamiclib -install_name @rpath/libhasher.1.dylib \
-compatibility_version 1.0.0 -current_version 1.0.0 ${OBJS} \
${OBJDIR}/libhasher.o -o ${BINDIR}/libhasher.1.0.dylib
-ln -sv libhasher.1.dylib ${BINDIR}/libhasher.dylib
-ln -sv libhasher.1.0.dylib ${BINDIR}/libhasher.1.dylib
${BINDIR}/libhashertest: ${BINDIR}/libhasher.dylib ${OBJDIR}/libhashertest.o
${CC} ${CFLAGS} -L${BINDIR} -lhasher ${OBJDIR}/libhashertest.o \
-Wl,-rpath,@executable_path/. -o ${BINDIR}/${@F}
${BINDIR}/libhashertest.py: ${SRC}/mac/libhashertest.py
cp ${SRC}/mac/libhashertest.py ${BINDIR}/libhashertest.py
chmod +x ${BINDIR}/libhashertest.py
clean: clean-obj clean-bin
clean-obj:
-@${RM} ${OBJDIR}/*
clean-bin:
-@${RM} ${BINDIR}/*
dist-clean: clean
-@${RM} ${OBJDIR}
-@${RM} ${BINDIR}