summaryrefslogtreecommitdiff
path: root/src/master/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/master/Makefile')
-rw-r--r--src/master/Makefile64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/master/Makefile b/src/master/Makefile
new file mode 100644
index 0000000..a3a3f87
--- /dev/null
+++ b/src/master/Makefile
@@ -0,0 +1,64 @@
+BD_DEBUG=debug-$(PLATFORM)-$(ARCH)
+BD_RELEASE=release-$(PLATFORM)-$(ARCH)
+
+ifndef PLATFORM
+ PLATFORM=$(shell uname|sed -e s/_.*//|tr '[:upper:]' '[:lower:]')
+endif
+ifndef ARCH
+ ARCH=$(shell uname -m | sed -e s/i.86/x86/)
+endif
+
+ifeq ($(PLATFORM),mingw32)
+ BINEXT=.exe
+ RELEASE_LDFLAGS=-lwsock32
+ DEBUG_LDFLAGS=-lwsock32
+ RM=rm -f
+ MKDIR=mkdir
+else
+ BINEXT=
+ RELEASE_LDFLAGS=-ltdb
+ DEBUG_LDFLAGS=-ltdb
+ RM=rm -f
+ MKDIR=mkdir
+endif
+
+CC=gcc
+RELEASE_CFLAGS=-Wall -O2
+DEBUG_CFLAGS=-g
+OBJECTS= \
+ $(BD)/master.o \
+ $(BD)/messages.o \
+ $(BD)/stats.o \
+ $(BD)/servers.o
+
+release: makedirs
+ $(MAKE) $(BD_RELEASE)/tremmaster BD=$(BD_RELEASE) \
+ CFLAGS="$(CFLAGS) $(RELEASE_CFLAGS)" LDFLAGS="$(LDFLAGS) $(RELEASE_LDFLAGS)"
+
+debug: makedirs
+ $(MAKE) $(BD_DEBUG)/tremmaster BD=$(BD_DEBUG) \
+ CFLAGS="$(CFLAGS) $(DEBUG_CFLAGS)" LDFLAGS="$(LDFLAGS) $(DEBUG_LDFLAGS)"
+
+all: release debug
+
+$(BD)/%.o: %.c
+ $(CC) $(CFLAGS) -o $@ -c $<
+
+$(BD)/tremmaster: $(OBJECTS)
+ $(CC) -o $@ $(OBJECTS) $(LDFLAGS)
+
+clean:
+ -$(RM) $(BD_DEBUG)/*
+ -$(RM) $(BD_RELEASE)/*
+
+makedirs:
+ @if [ ! -d $(BD_RELEASE) ];then $(MKDIR) $(BD_RELEASE);fi
+ @if [ ! -d $(BD_DEBUG) ];then $(MKDIR) $(BD_DEBUG);fi
+
+.PHONY: all clean release debug makedirs
+
+# for f in *.c ; do cpp -MM ${f} -MT\$\(BD\)/${f%.c}.o ; done
+$(BD)/master.o: master.c common.h messages.h servers.h
+$(BD)/messages.o: messages.c common.h messages.h servers.h
+$(BD)/servers.o: servers.c common.h servers.h
+$(BD)/stats.o: stats.c common.h