2021-04-29 16:40:41 +00:00
|
|
|
CC = gcc
|
|
|
|
LD = gcc
|
2021-05-23 15:18:37 +00:00
|
|
|
CFLAGS = -Wall -g -std=c99 -ICFloor/src/ -Ilibargo/src/ -Ilibparcival/src/ -D_POSIX_C_SOURCE=200809L -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
|
2021-05-14 16:15:27 +00:00
|
|
|
LIBARGO = libargo/libargo.a
|
2021-05-22 10:51:06 +00:00
|
|
|
LIBPARCIVAL = libparcival/libparcival.a
|
|
|
|
LIBS = $(CFLOOR_LIB) $(LIBARGO) $(LIBPARCIVAL)
|
2021-04-30 11:36:06 +00:00
|
|
|
|
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-23 15:18:37 +00:00
|
|
|
DEMO_OBJS = obj/demo.o obj/entities.tab.o obj/template.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-05-08 15:24:15 +00:00
|
|
|
$(LIBARGO):
|
2021-05-14 16:15:27 +00:00
|
|
|
$(MAKE) -C libargo/ libargo.a
|
2021-05-22 10:51:06 +00:00
|
|
|
|
|
|
|
$(LIBPARCIVAL):
|
|
|
|
$(MAKE) -C libparcival libparcival.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-14 16:15:27 +00:00
|
|
|
libargo/marshaller-gen:
|
|
|
|
$(MAKE) -C libargo/ marshaller-gen
|
2021-05-04 22:25:25 +00:00
|
|
|
|
2021-05-22 10:51:06 +00:00
|
|
|
libparcival/parcival:
|
|
|
|
$(MAKE) -C libparcival/ parcival
|
|
|
|
|
2021-05-04 22:25:25 +00:00
|
|
|
obj/entities.tab.o: obj/entities.tab.c
|
|
|
|
$(CC) $(CFLAGS) -MMD -c -o $@ $<
|
|
|
|
|
2021-05-14 16:15:27 +00:00
|
|
|
obj/entities.tab.c: demo/entities.h libargo/marshaller-gen
|
|
|
|
./libargo/marshaller-gen -o $@ $<
|
2021-04-30 11:36:06 +00:00
|
|
|
|
2021-05-23 15:18:37 +00:00
|
|
|
obj/template.tab.o: obj/template.tab.c
|
|
|
|
$(CC) $(CFLAGS) -MMD -c -o $@ $<
|
|
|
|
|
|
|
|
obj/template.tab.c: demo/demo.templ libparcival/parcival
|
|
|
|
cd demo && ../libparcival/parcival demo.templ > ../$@
|
|
|
|
|
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-05-14 16:15:27 +00:00
|
|
|
$(MAKE) -C libargo/ clean
|
2021-05-23 15:18:37 +00:00
|
|
|
$(MAKE) -C libparcival/ clean
|