server/src/Makefile.include
Christian Schlittchen d44226d452 - Neuer Gwyrrd-Zauber
2001-01-31 17:40:53 +00:00

160 lines
3.3 KiB
Text

## include this File in all Makefiles for Eressea
ifndef ERESSEA
export ERESSEA=$(PWD)
endif
default: debug
DEPEND = @g++ -MM -MG -r
AR = @ar
CTAGS = @ctags
CC = @gcc
LD = @gcc
INSTALL = @cp
#INSTALL = install
ARFLAGS = cr
CTAGSFLAGS = --langmap=c:.c.h --c-types=-m
CFLAGS = -I$(ERESSEA) -Wall -Wwrite-strings -Wstrict-prototypes \
-Wpointer-arith -Werror-implicit-function-declaration \
-Wno-char-subscripts \
-march=pentiumpro -fPIC $(INCLUDES)
LDFLAGS = $(LIBS)
LIBS = -L$(PUBLISH_DIR)
ARCHITECTURE = Linux
##
## user-defined makefiles
##
MKFILES = $(wildcard $(ERESSEA)/$(USER).mk $(ERESSEA)/$(OSTYPE).mk $(ERESSEA)/$(HOSTTYPE).mk $(ERESSEA)/$(ARCH).mk)
ifeq ($(MKFILES), )
else
include $(MKFILES)
endif
##
## Architecture-Dependent Exe and Library Names
##
ifeq ($(ARCHITECTURE), Linux)
ifneq ($(LIBNAME), )
LIBRARY = lib$(LIBNAME).a
endif
ifneq ($(EXENAME), )
BINARY = $(EXENAME)
endif
endif
ifeq ($(ARCHITECTURE), Windows)
ifneq ($(LIBNAME), )
LIBRARY = $(LIBNAME).lib
endif
ifneq ($(EXENAME), )
BINARY = $(EXENAME).exe
endif
endif
ifeq ($(CONFIG), debug)
BUILD_DIR = Debug-$(ARCHITECTURE)
CFLAGS += -g
LDFLAGS += -g
endif
ifeq ($(CONFIG), release)
BUILD_DIR = Release-$(ARCHITECTURE)
CFLAGS += -O4 -s -funroll-loops -fomit-frame-pointer
LDFLAGS += -s
endif
ifeq ($(CONFIG), profile)
BUILD_DIR = Profile-$(ARCHITECTURE)
CFLAGS += -g -pg -O4 -funroll-loops
LDFLAGS += -g -pg
endif
#
## Dependencies
#
ifneq ($(wildcard *.c),)
ifeq (.depend,$(wildcard .depend))
include .depend
endif
# Create dependencies
depend::
@echo "Creating dependencies in `pwd`/.depend";
$(DEPEND) $(CFLAGS) $(DEFINES) $(INCDIRS) $(SOURCES) >| .depend
endif
#
## Tags
#
tags:
@echo "Creating tags in `pwd`/tags";
$(CTAGS) $(CTAGSFLAGS) --recurse=yes -f $(ERESSEA)/tags $(ERESSEA)
PUBLISH_DIR = $(ERESSEA)/$(BUILD_DIR)
env:
@$(MAKEENV)
debug release profile:: env $(PUBLISH_DIR) $(PUBLISH_DIR)
$(MAKE) CONFIG=$@ recurse-subdirs-$@
##
## recurse-subdirs-X is called from a Makefile one level up.
##
recurse-subdirs-debug:: subdirs-debug publish-debug
recurse-subdirs-release:: subdirs-release publish-release
recurse-subdirs-profile:: subdirs-profile publish-profile
recurse-clean:: clean
recurse-depend:: depend
subdirs-debug subdirs-release subdirs-profile clean depend::
@mkdir -p $(PUBLISH_DIR)
@if [ -n "$(SUBDIRS)" ]; then \
for subdir in x-placeholder-dir $(SUBDIRS); do \
if [ -d $$subdir ]; then \
echo --\> Making $@ in $$subdir ; \
mkdir -p $$subdir/$(BUILD_DIR) ; \
$(MAKE) -C $$subdir -$(MAKEFLAGS) recurse-$@ || exit 1; \
fi \
done \
fi
publish-debug:: subdirs-debug
publish-release:: subdirs-release
publish-profile:: subdirs-profile
publish-debug publish-release publish-profile:: $(PUBLISH_DIR)/$(LIBRARY) $(PUBLISH_DIR)/$(BINARY)
clean:: $(BUILD_DIR) $(PUBLISH_DIR)
rm -fr Release-$(ARCHITECTURE)/* Debug-$(ARCHITECTURE)/* Profile-$(ARCHITECTURE)/*
$(BUILD_DIR) $(PUBLISH_DIR):
@mkdir $@
# object files:
$(BUILD_DIR)/%:: $(BUILD_DIR)
$(BUILD_DIR)/%.o:: %.c
@echo "Compiling $@"
$(CC) $(CFLAGS) -o $@ -c $<
##
## conversion code for old triggers - should only be used for free eressea,
## and only for old datafiles.
##
ifeq ($(CONVERT_TRIGGERS), 1)
CFLAGS += -DCONVERT_TRIGGER
INCLUDES += -I. -I$(ERESSEA)/eressea/old
endif