2009-02-19 16:14:09 +00:00
|
|
|
##
|
|
|
|
## Makefile for uhub (Use GNU make)
|
2009-06-25 20:04:48 +00:00
|
|
|
## Copyright (C) 2007-2009, Jan Vidar Krey <janvidar@extatic.org>
|
2009-02-19 16:14:09 +00:00
|
|
|
#
|
|
|
|
|
|
|
|
CC = gcc
|
|
|
|
LD := $(CC)
|
|
|
|
MV := mv
|
|
|
|
RANLIB := ranlib
|
|
|
|
CFLAGS += -pipe -Wall
|
|
|
|
USE_PCH ?= YES
|
2009-08-03 21:59:19 +00:00
|
|
|
USE_SSL ?= NO
|
2009-02-19 16:14:09 +00:00
|
|
|
USE_BIGENDIAN ?= AUTO
|
|
|
|
BITS ?= AUTO
|
|
|
|
SILENT ?= YES
|
2009-08-06 21:05:53 +00:00
|
|
|
LDLIBS += -lev
|
2009-03-16 16:36:28 +00:00
|
|
|
TERSE ?= NO
|
2009-03-16 21:49:55 +00:00
|
|
|
STACK_PROTECT ?= NO
|
2009-02-19 16:14:09 +00:00
|
|
|
|
|
|
|
ifeq ($(OS), Windows_NT)
|
|
|
|
WINDOWS ?= YES
|
|
|
|
endif
|
|
|
|
|
2009-07-25 18:05:27 +00:00
|
|
|
|
|
|
|
CFLAGS += -I./src/
|
|
|
|
|
2009-02-19 16:14:09 +00:00
|
|
|
ifeq ($(WINDOWS),YES)
|
|
|
|
USE_BIGENDIAN := NO
|
|
|
|
LDLIBS += -lws2_32
|
|
|
|
UHUB_CONF_DIR ?= c:/uhub/
|
|
|
|
UHUB_PREFIX ?= c:/uhub/
|
|
|
|
CFLAGS += -mno-cygwin
|
|
|
|
LDFLAGS += -mno-cygwin
|
|
|
|
BIN_EXT ?= .exe
|
2009-06-25 15:29:50 +00:00
|
|
|
GIT_REVISION ?= NO
|
2009-02-19 16:14:09 +00:00
|
|
|
else
|
2009-03-17 00:38:55 +00:00
|
|
|
DESTDIR ?= /
|
|
|
|
UHUB_CONF_DIR ?= $(DESTDIR)/etc/uhub
|
2009-03-19 19:02:03 +00:00
|
|
|
UHUB_PREFIX ?= $(DESTDIR)/usr/local
|
2009-02-19 16:14:09 +00:00
|
|
|
CFLAGS += -I/usr/local/include
|
|
|
|
LDFLAGS += -L/usr/local/lib
|
|
|
|
BIN_EXT ?=
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(SILENT),YES)
|
|
|
|
MSG_CC=@echo " CC:" $(notdir $^) &&
|
|
|
|
MSG_PCH=@echo " PCH:" $(notdir $@) &&
|
|
|
|
MSG_LD=@echo " LD:" $(notdir $@) &&
|
|
|
|
MSG_AR=@echo " AR:" $(notdir $@) &&
|
|
|
|
else
|
|
|
|
MSG_CC=
|
|
|
|
MSG_PCH=
|
|
|
|
MSG_LD=
|
|
|
|
MSG_AR=
|
|
|
|
endif
|
|
|
|
|
2009-03-16 16:36:28 +00:00
|
|
|
ifeq ($(TERSE), YES)
|
|
|
|
MSG_CC=@
|
|
|
|
MSG_PCH=@
|
|
|
|
MSG_LD=@
|
|
|
|
MSG_AR=@
|
|
|
|
MSG_CLEAN=-n ""
|
|
|
|
else
|
|
|
|
MSG_CLEAN="Clean as a whistle"
|
|
|
|
endif
|
|
|
|
|
2009-02-19 16:14:09 +00:00
|
|
|
CFLAGS += -I/source/libevent
|
|
|
|
LDFLAGS += -L/source/libevent
|
|
|
|
|
|
|
|
ifeq ($(RELEASE),YES)
|
2009-07-09 15:01:45 +00:00
|
|
|
CFLAGS += -O3 -DNDEBUG
|
2009-06-23 14:11:30 +00:00
|
|
|
GIT_REVISION ?= NO
|
2009-02-19 16:14:09 +00:00
|
|
|
else
|
2009-07-09 15:01:45 +00:00
|
|
|
CFLAGS += -ggdb -DDEBUG
|
2009-06-23 14:11:30 +00:00
|
|
|
GIT_REVISION ?= YES
|
2009-03-16 21:49:55 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(STACK_PROTECT),YES)
|
|
|
|
CFLAGS += -fstack-protector-all
|
2009-02-19 16:14:09 +00:00
|
|
|
endif
|
|
|
|
|
2009-03-16 21:49:55 +00:00
|
|
|
|
2009-02-19 16:14:09 +00:00
|
|
|
ifeq ($(PROFILING),YES)
|
|
|
|
CFLAGS += -pg
|
|
|
|
LDFLAGS += -pg
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(FUNCTRACE),YES)
|
|
|
|
CFLAGS += -finstrument-functions
|
|
|
|
CFLAGS += -DDEBUG_FUNCTION_TRACE
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(USE_PCH),YES)
|
|
|
|
PCHSRC=src/uhub.h
|
|
|
|
PCH=src/uhub.h.gch
|
|
|
|
else
|
|
|
|
PCH=
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq ($(BITS), AUTO)
|
|
|
|
ifeq ($(BITS), 64)
|
|
|
|
CFLAGS += -m64
|
|
|
|
LDFLAGS += -m64
|
|
|
|
else
|
|
|
|
ifeq ($(BITS), 32)
|
|
|
|
CFLAGS += -m32
|
|
|
|
LDFLAGS += -m32
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(USE_BIGENDIAN),AUTO)
|
|
|
|
ifeq ($(shell perl -e 'print pack("L", 0x554E4958)'),UNIX)
|
|
|
|
CFLAGS += -DARCH_BIGENDIAN
|
|
|
|
endif
|
|
|
|
else
|
|
|
|
ifeq ($(USE_BIGENDIAN),YES)
|
|
|
|
CFLAGS += -DARCH_BIGENDIAN
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(USE_SSL),YES)
|
|
|
|
CFLAGS += -DSSL_SUPPORT
|
|
|
|
LDLIBS += -lssl
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq ($(LIBEVENT_PATH),)
|
|
|
|
CFLAGS += -I$(LIBEVENT_PATH)
|
|
|
|
LDFLAGS += -L$(LIBEVENT_PATH)
|
|
|
|
endif
|
|
|
|
|
2009-06-23 14:11:30 +00:00
|
|
|
ifeq ($(GIT_REVISION),YES)
|
2009-06-25 20:04:48 +00:00
|
|
|
CFLAGS += -DGIT_REVISION=\"$(shell git show --abbrev-commit | head -n 1 | cut -f 2 -d " ")\"
|
2009-06-23 14:11:30 +00:00
|
|
|
endif
|
|
|
|
|
2009-02-19 16:14:09 +00:00
|
|
|
# Sources
|
|
|
|
libuhub_SOURCES := \
|
2009-07-25 18:05:27 +00:00
|
|
|
src/core/auth.c \
|
|
|
|
src/core/commands.c \
|
|
|
|
src/core/config.c \
|
|
|
|
src/core/eventqueue.c \
|
|
|
|
src/core/hub.c \
|
|
|
|
src/core/hubevent.c \
|
|
|
|
src/core/hubio.c \
|
|
|
|
src/core/inf.c \
|
|
|
|
src/util/ipcalc.c \
|
|
|
|
src/util/list.c \
|
|
|
|
src/util/log.c \
|
|
|
|
src/util/memory.c \
|
|
|
|
src/adc/message.c \
|
|
|
|
src/util/misc.c \
|
|
|
|
src/core/netevent.c \
|
2009-08-02 19:37:55 +00:00
|
|
|
src/network/connection.c \
|
2009-07-25 18:05:27 +00:00
|
|
|
src/network/network.c \
|
|
|
|
src/util/rbtree.c \
|
|
|
|
src/core/route.c \
|
|
|
|
src/adc/sid.c \
|
|
|
|
src/util/tiger.c \
|
|
|
|
src/core/user.c \
|
|
|
|
src/core/usermanager.c
|
|
|
|
|
|
|
|
uhub_SOURCES := src/core/main.c
|
2009-02-19 16:14:09 +00:00
|
|
|
|
2009-08-02 19:07:16 +00:00
|
|
|
adcrush_SOURCES := src/tools/adcrush.c
|
2009-02-19 16:14:09 +00:00
|
|
|
|
2009-05-26 17:46:51 +00:00
|
|
|
admin_SOURCES := src/admin.c
|
|
|
|
|
2009-02-19 16:14:09 +00:00
|
|
|
uhub_HEADERS := \
|
2009-07-25 18:05:27 +00:00
|
|
|
src/adc/adcconst.h \
|
|
|
|
src/core/auth.h \
|
|
|
|
src/core/config.h \
|
|
|
|
src/core/eventid.h \
|
|
|
|
src/core/eventqueue.h \
|
|
|
|
src/core/hub.h \
|
|
|
|
src/core/hubevent.h \
|
|
|
|
src/core/hubio.h \
|
|
|
|
src/core/inf.h \
|
|
|
|
src/util/ipcalc.h \
|
|
|
|
src/util/list.h \
|
|
|
|
src/util/log.h \
|
|
|
|
src/util/memory.h \
|
|
|
|
src/adc/message.h \
|
|
|
|
src/util/misc.h \
|
|
|
|
src/core/netevent.h \
|
2009-08-02 19:37:55 +00:00
|
|
|
src/network/connection.h \
|
2009-07-25 18:05:27 +00:00
|
|
|
src/network/network.h \
|
|
|
|
src/util/rbtree.h \
|
|
|
|
src/core/route.h \
|
|
|
|
src/adc/sid.h \
|
|
|
|
src/util/tiger.h \
|
2009-02-19 16:14:09 +00:00
|
|
|
src/uhub.h \
|
2009-07-25 18:05:27 +00:00
|
|
|
src/core/user.h \
|
|
|
|
src/core/usermanager.h
|
2009-02-19 16:14:09 +00:00
|
|
|
|
|
|
|
autotest_SOURCES := \
|
|
|
|
autotest/test_message.tcc \
|
|
|
|
autotest/test_list.tcc \
|
|
|
|
autotest/test_memory.tcc \
|
|
|
|
autotest/test_ipfilter.tcc \
|
|
|
|
autotest/test_inf.tcc \
|
|
|
|
autotest/test_hub.tcc \
|
|
|
|
autotest/test_misc.tcc \
|
|
|
|
autotest/test_tiger.tcc \
|
2009-05-15 16:45:26 +00:00
|
|
|
autotest/test_usermanager.tcc \
|
2009-02-19 16:14:09 +00:00
|
|
|
autotest/test_eventqueue.tcc
|
|
|
|
|
|
|
|
autotest_OBJECTS = autotest.o
|
|
|
|
|
|
|
|
# Source to objects
|
|
|
|
libuhub_OBJECTS := $(libuhub_SOURCES:.c=.o)
|
|
|
|
uhub_OBJECTS := $(uhub_SOURCES:.c=.o)
|
|
|
|
adcrush_OBJECTS := $(adcrush_SOURCES:.c=.o)
|
2009-05-26 17:46:51 +00:00
|
|
|
admin_OBJECTS := $(admin_SOURCES:.c=.o)
|
2009-02-19 16:14:09 +00:00
|
|
|
|
2009-05-26 17:46:51 +00:00
|
|
|
all_OBJECTS := $(libuhub_OBJECTS) $(uhub_OBJECTS) $(adcrush_OBJECTS) $(autotest_OBJECTS) $(admin_OBJECTS)
|
2009-02-19 16:14:09 +00:00
|
|
|
|
|
|
|
LIBUHUB=libuhub.a
|
|
|
|
uhub_BINARY=uhub$(BIN_EXT)
|
|
|
|
adcrush_BINARY=adcrush$(BIN_EXT)
|
2009-05-26 17:46:51 +00:00
|
|
|
admin_BINARY=uhub-admin$(BIN_EXT)
|
2009-02-19 16:14:09 +00:00
|
|
|
autotest_BINARY=autotest/test$(BIN_EXT)
|
|
|
|
|
|
|
|
%.o: %.c
|
2009-06-25 15:35:59 +00:00
|
|
|
$(MSG_CC) $(CC) -c $(CFLAGS) -o $@ $^
|
2009-02-19 16:14:09 +00:00
|
|
|
|
|
|
|
all: $(uhub_BINARY) $(PCH)
|
|
|
|
|
|
|
|
$(adcrush_BINARY): $(PCH) $(LIBUHUB) $(adcrush_OBJECTS)
|
2009-06-25 15:35:59 +00:00
|
|
|
$(MSG_LD) $(CC) -o $@ $(adcrush_OBJECTS) $(LIBUHUB) $(LDFLAGS) $(LDLIBS)
|
2009-02-19 16:14:09 +00:00
|
|
|
|
2009-05-26 17:46:51 +00:00
|
|
|
$(admin_BINARY): $(PCH) $(LIBUHUB) $(admin_OBJECTS)
|
2009-06-25 15:35:59 +00:00
|
|
|
$(MSG_LD) $(CC) -o $@ $(admin_OBJECTS) $(LIBUHUB) $(LDFLAGS) $(LDLIBS)
|
2009-05-26 17:46:51 +00:00
|
|
|
|
2009-02-19 16:14:09 +00:00
|
|
|
$(uhub_BINARY): $(PCH) $(LIBUHUB) $(uhub_OBJECTS)
|
2009-06-25 15:35:59 +00:00
|
|
|
$(MSG_LD) $(CC) -o $@ $(uhub_OBJECTS) $(LIBUHUB) $(LDFLAGS) $(LDLIBS)
|
2009-02-19 16:14:09 +00:00
|
|
|
|
|
|
|
$(LIBUHUB): $(libuhub_OBJECTS)
|
2009-06-25 15:35:59 +00:00
|
|
|
$(MSG_AR) $(AR) rc $@ $^ && $(RANLIB) $@
|
2009-02-19 16:14:09 +00:00
|
|
|
|
|
|
|
ifeq ($(USE_PCH),YES)
|
|
|
|
$(PCH): $(uhub_HEADERS)
|
2009-06-25 15:35:59 +00:00
|
|
|
$(MSG_PCH) $(CC) $(CFLAGS) -o $@ $(PCHSRC)
|
2009-02-19 16:14:09 +00:00
|
|
|
endif
|
|
|
|
|
2009-03-16 17:27:29 +00:00
|
|
|
autotest.c: $(autotest_SOURCES)
|
|
|
|
$(shell exotic --standalone $(autotest_SOURCES) > $@)
|
|
|
|
|
2009-02-19 16:14:09 +00:00
|
|
|
$(autotest_OBJECTS): autotest.c
|
2009-06-25 15:35:59 +00:00
|
|
|
$(MSG_CC) $(CC) -c $(CFLAGS) -Isrc -o $@ $<
|
2009-02-19 16:14:09 +00:00
|
|
|
|
|
|
|
$(autotest_BINARY): $(autotest_OBJECTS) $(LIBUHUB)
|
2009-06-25 15:35:59 +00:00
|
|
|
$(MSG_LD) $(CC) -o $@ $^ $(LDFLAGS) $(LDLIBS)
|
2009-02-19 16:14:09 +00:00
|
|
|
|
|
|
|
autotest: $(autotest_BINARY)
|
|
|
|
@./$(autotest_BINARY) -s -f
|
|
|
|
|
|
|
|
ifeq ($(WINDOWS),YES)
|
|
|
|
install:
|
|
|
|
@echo "Cannot install automatically on windows."
|
|
|
|
else
|
|
|
|
install: $(uhub_BINARY)
|
|
|
|
@echo Copying $(uhub_BINARY) to $(UHUB_PREFIX)/bin/
|
|
|
|
@cp $(uhub_BINARY) $(UHUB_PREFIX)/bin/
|
|
|
|
@if [ ! -d $(UHUB_CONF_DIR) ]; then echo Creating $(UHUB_CONF_DIR); mkdir -p $(UHUB_CONF_DIR); fi
|
|
|
|
@if [ ! -f $(UHUB_CONF_DIR)/uhub.conf ]; then cp doc/uhub.conf $(UHUB_CONF_DIR); fi
|
|
|
|
@if [ ! -f $(UHUB_CONF_DIR)/users.conf ]; then cp doc/users.conf $(UHUB_CONF_DIR); fi
|
2009-03-17 00:38:55 +00:00
|
|
|
@touch $(UHUB_CONF_DIR)/motd.txt
|
2009-02-19 16:14:09 +00:00
|
|
|
@echo done.
|
|
|
|
endif
|
|
|
|
|
|
|
|
dist-clean:
|
|
|
|
@rm -rf $(all_OBJECTS) $(PCH) *~ core
|
|
|
|
|
|
|
|
clean:
|
|
|
|
@rm -rf $(libuhub_OBJECTS) $(PCH) *~ core $(uhub_BINARY) $(LIBUHUB) $(all_OBJECTS) && \
|
2009-03-16 16:36:28 +00:00
|
|
|
echo $(MSG_CLEAN)
|
2009-02-19 16:14:09 +00:00
|
|
|
|
|
|
|
|