CC=gcc EXT=dylib SERVER=plugin_manager.o plugins/ini.o http_server.o plugins/dictionary.o plugins/utils.o SERVERLIB=-lpthread -ldl UNAME_S := $(shell uname -s) ifeq ($(UNAME_S),Linux) BUILDIRD=/root/antd PF_FLAG=-D_GNU_SOURCE endif ifeq ($(UNAME_S),Darwin) BUILDIRD=./build PF_FLAG= endif CFLAGS=-W -Wall -g -std=c99 -D DEBUG -D USE_DB $(PF_FLAG) #-lsocket PLUGINS= dummy.$(EXT) fileman.$(EXT) pluginsman.$(EXT) wterm.$(EXT) nodedaemon.$(EXT) cookiex.$(EXT) PLUGINSDEP = plugins/ini.o plugins/plugin.o plugins/dbhelper.o plugins/dictionary.o plugins/utils.o plugins/list.o PLUGINLIBS = -lsqlite3 main: httpd plugins httpd:$(SERVER) $(CC) $(CFLAGS) $(SERVERLIB) $(SERVER) -o $(BUILDIRD)/httpd httpd.c %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ plugins: $(PLUGINS) %.$(EXT): $(PLUGINSDEP) for file in $(wildcard plugins/$(basename $@)/*.c) ; do\ $(CC) $(CFLAGS) -c $$file -o $$file.o; \ done $(CC) $(CFLAGS) $(PLUGINLIBS) -shared -o $(BUILDIRD)/plugins/$(basename $@).$(EXT) \ $(PLUGINSDEP) plugins/$(basename $@)/*.c.o clean: sclean pclean sclean: rm -f *.o build/httpd pclean: rm -rf $(BUILDIRD)/plugins/* plugins/*.o -for file in plugins/* ;do \ if [ -d "$$file" ]; then \ rm "$$file"/*.o; \ fi \ done .PRECIOUS: %.o