-CFLAGS := -ggdb -Wno-format-truncation
-LDFLAGS :=
+CFLAGS := $(CFLAGS) -ggdb -Wno-format-truncation
+LDFLAGS := $(LDFLAGS)
-# link
-webcit: server/*.c
- gcc server/*.c $(LDFLAGS) -lcitadel -lpthread -lcrypto -lssl -lexpat -o webcit
+SRC := server
+OBJ := server
+
+HEADERS := $(wildcard $(SRC)/*.h)
+SOURCES := $(wildcard $(SRC)/*.c)
+OBJECTS := $(patsubst $(SRC)/%.c, $(OBJ)/%.o, $(SOURCES))
+
+webcit: $(OBJECTS)
+ gcc $(CFLAGS) $(OBJECTS) $(LDFLAGS) -lcitadel -lpthread -lcrypto -lssl -lexpat -o webcit
+
+$(SRC)/%.c: $(HEADERS)
+ touch $@
+
+$(OBJ)/%.o: $(SRC)/%.c
+ gcc $(CFLAGS) -I$(SRC) -c $< -o $@
# remove compilation products
clean:
- rm -f webcit
+ rm -f webcit server/*.o
distclean: clean