# $Id$ DIR := $(shell pwd) PREFIX := /usr/local ETC_PREFIX := $(PREFIX)/etc BIN := $(DIR)/bin OBJ := $(DIR)/obj SRC := $(DIR)/src INC := $(DIR)/include LIB := $(DIR)/lib INC2 := $(DIR)/include2 CC := cc CFLAGS := -g -std=c99 -I$(INC) -D_PREFIX=\"$(PREFIX)\" -D_ETC_PREFIX=\"$(ETC_PREFIX)\" -DPLATFORM=\"$(shell uname -s)\" -I$(INC2) LIBS := -lserver -lmtknife -lpthread LDFLAGS := -L$(LIB) OPTIONS := ifeq ($(shell uname -s),Linux) CFLAGS += -D_BSD_SOURCE LIBS += -ldl endif ifneq ($(SSL),NO) CFLAGS += -DENABLE_SSL LIBS += -lssl -lcrypto OPTIONS += +ssl else OPTIONS += -ssl endif ifeq ($(STATIC),YES) LDFLAGS += -static OPTIONS += +static else OPTIONS += -static endif ifeq ($(shell uname -s),SunOS) LIBS += -lsocket endif CFLAGS += -DOPTIONS=\"$(shell echo $(OPTIONS) | sed "s/ /\\\\ /g")\" .PHONY: clean all test $(LIB)/mod_test.so $(LIB)/mod_cgi.so $(LIB)/mod_cgi2.so all: $(BIN)/httpd \ $(LIB)/mod_test.so \ $(LIB)/mod_cgi2.so # $(LIB)/mod_cgi.so test: all $(BIN)/httpd -v sunhttpd.conf clean: rm -rf $(BIN) $(OBJ) make -C mod_test clean LIB=$(LIB) # make -C mod_cgi clean make -C mod_cgi2 clean LIB=$(LIB) $(LIB)/mod_test.so: mkdir -p $(LIB) $(MAKE) -C mod_test LIB=$(LIB) INC=$(INC) CC=$(CC) INC2=$(INC2) $(LIB)/mod_cgi.so: mkdir -p $(LIB) $(MAKE) -C mod_cgi LIB=$(LIB) INC=$(INC) CC=$(CC) INC2=$(INC2) $(LIB)/mod_cgi2.so: mkdir -p $(LIB) $(MAKE) -C mod_cgi2 LIB=$(LIB) INC=$(INC) CC=$(CC) INC2=$(INC2) $(BIN)/httpd: $(OBJ)/main.o \ $(OBJ)/config.o \ $(OBJ)/server.o mkdir -p $(BIN) $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) @echo "*** Welcome to SUN HTTPd." $(OBJ)/main.o: $(SRC)/main.c $(INC)/sunhttpd.h mkdir -p $(OBJ) $(CC) $(CFLAGS) -c -o $@ $< $(OBJ)/%.o: $(SRC)/%.c $(INC)/sunhttpd_%.h $(INC)/sunhttpd.h mkdir -p $(OBJ) $(CC) $(CFLAGS) -c -o $@ $<