1
1
.POSIX :
2
2
3
3
# # This really shouldn't be overridden
4
- PROJECT ? = nombre
4
+ PROJECT = nombre
5
5
# # Invoke with -DDVCS=git to use the git functions instead
6
6
DVCS ?= fossil
7
7
# # Set the suffixes to catch all .c and .o files
@@ -23,18 +23,20 @@ DBG =
23
23
24
24
# # Flags used to build under GCC
25
25
# # Generic flags
26
- LIBS = -L/usr/local/lib -L/usr/lib -lsqlite3 # -lpthread -lc
26
+ LIBS = -L/usr/local/lib -L/usr/lib -lsqlite3 -lc
27
27
INCS = -I/usr/local/include -I/usr/include
28
28
# # List of *.c files to build
29
29
SRCS = nombre.c initdb.c dbverify.c parsecmd.c subnom.c
30
- SRCDIR = src/
30
+ HEADERS = $(SRCS:.c=.h )
31
+ OBJ = $(SRC:.c=.o )
32
+
31
33
32
34
# # TODO: Figure this out
33
35
.if ${CC :Mclang-devel} || ${CC:Mclang}
34
36
# # Flags used to build under Clang/LLVM
35
37
# # Not all flags exist or mean the same for all compilers
36
38
WARN = -Wextra -Wall -Wparentheses -Weverything -pedantic
37
- LDFLAGS = --icf=safe - z relro -z now -z combreloc
39
+ LDFLAGS = -z relro -z now -z combreloc # --icf=safe
38
40
CFLAGS = -std=${STD} -c -Oz -fpic -fpie -fPIC -fPIE \
39
41
-fvectorize -fstack-protector -fstrict-enums -fstrict-return -fstack-protector-strong \
40
42
-fmerge-all-constants -fstack-protector-all -Qn -fstrict-aliasing \
@@ -102,12 +104,12 @@ help:
102
104
check : ${SRCS}
103
105
@clang-tidy-devel -checks=* $?
104
106
105
- debug : mkdest bin/ nombre
107
+ debug : mkdest nombre
106
108
@echo " [${.TARGET} ]: Working in ${.CURDIR} "
107
- (cd " ${.CURDIR} /bin " && install -vm ${BINMODE} ${TARGET} ${PREFIX}${DESTDIR} )
109
+ install -vm ${BINMODE} ${TARGET} ${PREFIX}${DESTDIR}
108
110
${PREFIX}${DESTDIR} /${TARGET} ${HELP}
109
111
110
- install : mkdest bin/ nombre
112
+ install : mkdest nombre
111
113
@echo " [${.TARGET} ]: Working in ${.CURDIR} "
112
114
@strip -s bin/${TARGET}
113
115
@install -vm ${BINMODE} bin/${TARGET} ${PREFIX}${DESTDIR}
@@ -125,39 +127,16 @@ mkdest: dirs
125
127
# # including the test directory
126
128
dirs :
127
129
@echo " [${.TARGET} ]: Working in ${.CURDIR} "
128
- @mkdir -pm 1750 ${.CURDIR} /bin
129
- @mkdir -pm 1750 ${.CURDIR} /obj
130
- @mkdir -pm 1750 ${.CURDIR} /src
131
130
@mkdir -pm 1750 ${.CURDIR} /test
132
131
133
132
# # Build the object files
134
- objects : ${.OBJDIR}/nombre.o ${.OBJDIR}/initdb.o ${.OBJDIR}/dbverify.o ${.OBJDIR}/parsecmd.o ${.OBJDIR}/subnom.o
135
- @echo " [${.TARGET} ]: Built object files"
136
-
137
- ${.OBJDIR}/nombre.o : ${SRCDIR}nombre.c
138
- @echo " [${.TARGET} ]: Compiling ${.OODATE} "
139
- @$(CC ) ${INCS} ${CFLAGS} -o ${.TARGET} ${.ALLSRC}
140
-
141
- ${.OBJDIR}/initdb.o : ${SRCDIR}initdb.c
142
- @echo " [${.TARGET} ]: Compiling ${.OODATE} "
143
- @$(CC ) ${INCS} ${CFLAGS} -o ${.TARGET} ${.ALLSRC}
144
-
145
- ${.OBJDIR}/dbverify.o : ${SRCDIR}dbverify.c
146
- @echo " [${.TARGET} ]: Compiling ${.OODATE} "
147
- @$(CC ) ${INCS} ${CFLAGS} -o ${.TARGET} ${.ALLSRC}
148
-
149
- ${.OBJDIR}/parsecmd.o : ${SRCDIR}parsecmd.c
150
- @echo " [${.TARGET} ]: Compiling ${.OODATE} "
151
- @$(CC ) ${INCS} ${CFLAGS} -o ${.TARGET} ${.ALLSRC}
133
+ .c.o :
134
+ $(CC ) ${CFLAGS} -c $<
152
135
153
- ${.OBJDIR}/subnom.o : ${SRCDIR}subnom.c
154
- @echo " [${.TARGET} ]: Compiling ${.OODATE} "
155
- @$(CC ) ${INCS} ${CFLAGS} -o ${.TARGET} ${.ALLSRC}
136
+ $(OBJ ) : ${HEADERS}
156
137
157
- # # Link the object files
158
- bin/nombre : objects obj/nombre.o obj/initdb.o obj/dbverify.o obj/parsecmd.o obj/subnom.o
159
- @echo " [${.TARGET} ]: In ${.CURDIR} , Linking ${.ALLSRC: M* .o} "
160
- (cd ${.CURDIR} && ${LD} ${LIBS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC: M* .o} )
138
+ $(PROJECT ) :
139
+ $(CC ) -o $@ $(OBJ ) ${LDFLAGS}
161
140
162
141
push :
163
142
@gitsync -r ${PROJECT} -n master
0 commit comments