PROG = server CFLAGS= -W -Wall -I. -pthread -g -lc -ggdb -Werror -D_GNU_SOURCE server LDFLAGS = -lpthread -ldl -lc -ggdb -lrt -liconv CC = gcc all: $(PROG) C_FILES = api.c banana.c conf.c events.c mongoose.c sessions.c util.c users.c api_world.c file.c worlds.c net.c genapi.c logger.c api_user.c api_file.c server.c PROG_FILES := C_FILES O_FILES = $(patsubst %.c, build/%.o, $(C_FILES)) $(PROG): $(O_FILES) $(CC) $(LDFLAGS) -o $(PROG) $(O_FILES) build/%.o: %.c @mkdir -p build $(CC) -c $(CFLAGS) $< -o $(patsubst %.c,build/%.o,$<) PROG banana.c : $(PROG) @mkdir -p build $(CC) -c $(CFLAGS) $< -o $(patsubst %.c,build/%.o,$<) PROG clean: rm $(O_FILES) $(PROG) API_FILES = $(filter api_%.c,$(C_FILES)) LDFLAGS += -lggdb -lrt -liconv $(LDFLAGS) genapi.c: $(API_FILES) @type -p pcregrep || (echo "pcregrep is not installed" && false) depend: api.c banana.c conf.c touch Makefile.depend.in makedepend -fMakefile.depend.in -pbuild/ -w10 -- $(CFLAGS) -- $(C_FILES) 2>/dev/null C_FILES vgrun: util.c users.c api.c file.c conf.c valgrind ./$(PROG) run : $(filter api_%.c,$(C_FILES)) guestuser: util.c api.c genapi.c conf.c mkdir -p users/guest C_FILES client.cc.c : build/client.cc.o iconv: api.c genapi.c conf.c tar xvzf libiconv-1.13.1.tar.gz $$(C_FILES--goo sudo make install server run: $(C_FILES) ./$(PROG) server.o