CShore/Makefile

72 lines
1.5 KiB
Makefile
Raw Normal View History

2021-04-29 16:40:41 +00:00
CC = gcc
LD = gcc
2021-05-04 22:25:25 +00:00
CFLAGS = -Wall -g -std=c99 -ICFloor/src/ -ICson/src/ -ICson/marshaller/lib/ -D_POSIX_SOURCE -D_XOPEN_SOURCE=500
2021-04-29 16:40:41 +00:00
LDFLAGS = -lpthread -lrt
2021-04-30 11:36:06 +00:00
CFLOOR_LIB = CFloor/libcfloor.a
CSON_LIB = Cson/libcson.a
LIBS = $(CFLOOR_LIB) $(CSON_LIB)
2021-05-02 20:54:48 +00:00
OBJS = obj/router.o obj/request.o obj/base_cfloor.o obj/base_cgi.o
2021-04-30 11:36:06 +00:00
DEPS = $(OBJS:%.o=%.d)
2021-05-04 22:25:25 +00:00
DEMO_OBJS = obj/demo.o obj/entities.tab.o
2021-04-30 11:36:06 +00:00
HAS_MAIN =
NEEDS_MAIN = \
if test "$(HAS_MAIN)" != "yes"; then\
echo "ERROR: Trying to build standalone without base.";\
echo " Specify target base_cfloor instead.";\
exit 1;\
fi
all: base_cfloor clean
base_cfloor: CFLAGS += -DBASE_CFLOOR
base_cfloor: HAS_MAIN = "yes"
base_cfloor: standalone
2021-05-02 20:54:48 +00:00
base_cgi: CFLAGS += -DBASE_CGI
base_cgi: HAS_MAIN = "yes"
base_cgi: standalone
2021-04-30 11:36:06 +00:00
2021-05-04 22:25:25 +00:00
standalone: CFLAGS += -Idemo/
2021-04-30 11:36:06 +00:00
standalone: $(DEMO_OBJS) $(OBJS) $(LIBS)
@$(NEEDS_MAIN)
2021-04-29 16:40:41 +00:00
$(LD) $(LDFLAGS) -o $@ $^
2021-04-30 11:36:06 +00:00
$(CFLOOR_LIB):
2021-04-29 16:40:41 +00:00
$(MAKE) -C CFloor/ libcfloor.a
2021-04-29 21:59:10 +00:00
2021-04-30 11:36:06 +00:00
$(CSON_LIB):
2021-05-05 20:47:22 +00:00
$(MAKE) -C Cson/ libcson.a
2021-04-29 16:40:41 +00:00
2021-04-30 11:36:06 +00:00
-include $(DEPS)
obj/%.o: demo/%.c obj
$(CC) $(CFLAGS) -Isrc/ -MMD -c -o $@ $<
obj/%.o: src/%.c obj
$(CC) $(CFLAGS) -MMD -c -o $@ $<
2021-04-29 16:40:41 +00:00
2021-04-30 11:36:06 +00:00
obj:
@mkdir -p obj
2021-05-04 22:25:25 +00:00
2021-05-05 20:47:22 +00:00
Cson/marshaller-gen:
$(MAKE) -C Cson/ marshaller-gen
2021-05-04 22:25:25 +00:00
obj/entities.tab.o: obj/entities.tab.c
$(CC) $(CFLAGS) -MMD -c -o $@ $<
2021-05-05 20:47:22 +00:00
obj/entities.tab.c: demo/entities.h Cson/marshaller-gen
./Cson/marshaller-gen -o $@ $<
2021-04-30 11:36:06 +00:00
2021-04-29 16:40:41 +00:00
clean:
2021-04-30 11:36:06 +00:00
@echo "Cleaning up..."
@rm -f obj/*.o
@rm -f obj/*.d
2021-05-04 22:25:25 +00:00
@rm -f obj/*.c
2021-04-30 11:36:06 +00:00
@rm -f standalone
2021-04-29 16:40:41 +00:00
$(MAKE) -C CFloor/ clean
2021-04-30 11:36:06 +00:00
$(MAKE) -C Cson/ clean