diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 498 |
1 files changed, 249 insertions, 249 deletions
@@ -1,249 +1,249 @@ -
-CACHED = $(shell ls | grep Makefile.cache)
-ifeq ($(findstring Makefile.cache,$(CACHED)), Makefile.cache)
-MKDEF = $(shell cat Makefile.cache)
-else
-
-CC = gcc -pipe
-# CC = g++ --pipe
-
-MAKE = make
-# MAKE = gmake
-
-OPT = -g
-OPT += -O2
-# OPT += -O3
-# OPT += -mmmx
-# OPT += -msse
-# OPT += -msse2
-# OPT += -msse3
-# OPT += -rdynamic
-OPT += -ffast-math
-# OPT += -fbounds-checking
-# OPT += -fstack-protector
-# OPT += -fomit-frame-pointer
-OPT += -Wall -Wno-sign-compare
-# Uncomment this one if you are using GCC 4.X
-# OPT += -Wno-unused-parameter -Wno-pointer-sign
-# Makes map-wide script variables be saved to SQL instead of TXT files.
-# OPT += -DMAPREGSQL
-# Turbo is an alternate socket access implementation which should be faster.
-# DO NOT ENABLE YET as it isn't quite ready for general usage.
-# OPT += -DTURBO
-# Enable the perl regular expression support for scripts
-# OPT += -DPCRE_SUPPORT
-# OPT += -DGCOLLECT
-# OPT += -DMEMWATCH
-# OPT += -DDMALLOC -DDMALLOC_FUNC_CHECK
-# OPT += -DBCHECK
-
-# LIBS += -lgc
-# LIBS += -ldmalloc
-# LIBS += -L/usr/local/lib -lpcre
-
-PLATFORM = $(shell uname)
-
-ifeq ($(findstring Linux,$(PLATFORM)), Linux)
- LIBS += -ldl
-endif
-
-ifeq ($(findstring SunOS,$(PLATFORM)), SunOS)
- LIBS += -lsocket -lnsl -ldl
- MAKE = gmake
-endif
-
-ifeq ($(findstring FreeBSD,$(PLATFORM)), FreeBSD)
- MAKE = gmake
- OS_TYPE = -D__FREEBSD__
-endif
-
-ifeq ($(findstring NetBSD,$(PLATFORM)), NetBSD)
- MAKE = gmake
- OS_TYPE = -D__NETBSD__
-endif
-
-ifeq ($(findstring CYGWIN,$(PLATFORM)), CYGWIN)
- OPT += -DFD_SETSIZE=4096
- ifeq ($(findstring mingw,$(shell gcc --version)), mingw)
- IS_MINGW = 1
- OS_TYPE = -DMINGW
- LIBS += -L../.. -lwsock32
- else
- OS_TYPE = -DCYGWIN
- endif
-endif
-
-CFLAGS = $(OPT) -I../common $(OS_TYPE)
-
-ifdef SQLFLAG
- ifdef IS_MINGW
- CFLAGS += -I../mysql
- LIBS += -lmysql
- else
- MYSQLFLAG_CONFIG = $(shell which mysql_config)
- ifeq ($(findstring /,$(MYSQLFLAG_CONFIG)), /)
- MYSQLFLAG_VERSION = $(shell $(MYSQLFLAG_CONFIG) --version | sed s:\\..*::)
- ifeq ($(findstring 5,$(MYSQLFLAG_VERSION)), 5)
- MYSQLFLAG_CONFIG_ARGUMENT = --include
- else
- MYSQLFLAG_CONFIG_ARGUMENT = --cflags
- endif
- CFLAGS += $(shell $(MYSQLFLAG_CONFIG) $(MYSQLFLAG_CONFIG_ARGUMENT))
- LIBS += $(shell $(MYSQLFLAG_CONFIG) --libs)
- else
- CFLAGS += -I/usr/local/include/mysql
- LIBS += -L/usr/local/lib/mysql -lmysqlclient
- endif
- endif
-endif
-
-ifneq ($(findstring -lz,$(LIBS)), -lz)
- LIBS += -lz
-endif
-ifneq ($(findstring -lm,$(LIBS)), -lm)
- LIBS += -lm
-endif
-
-MKDEF = CC="$(CC)" CFLAGS="$(CFLAGS)" LIB_S="$(LIBS)"
-
-endif
-
-.PHONY: txt sql common login login_sql char char_sql map map_sql ladmin converters \
- addons plugins tools webserver clean zlib depend
-
-txt : Makefile.cache conf common login char map ladmin
-
-ifdef SQLFLAG
-sql: Makefile.cache conf common login_sql char_sql map_sql
-else
-sql:
- $(MAKE) SQLFLAG=1 $@
-endif
-
-conf:
- cp -r conf-tmpl conf
- rm -rf conf/.svn conf/*/.svn
- cp -r save-tmpl save
- rm -rf save/.svn
-
-common: src/common/GNUmakefile
- $(MAKE) -C src/$@ $(MKDEF)
-
-login: src/login/GNUmakefile common
- $(MAKE) -C src/$@ $(MKDEF) txt
-
-char: src/char/GNUmakefile common
- $(MAKE) -C src/$@ $(MKDEF) txt
-
-map: src/map/GNUmakefile common
- $(MAKE) -C src/$@ $(MKDEF) txt
-
-login_sql: src/login_sql/GNUmakefile common
- $(MAKE) -C src/$@ $(MKDEF) sql
-
-char_sql: src/char_sql/GNUmakefile common
- $(MAKE) -C src/$@ $(MKDEF) sql
-
-map_sql: src/map/GNUmakefile common
- $(MAKE) -C src/map $(MKDEF) sql
-
-ladmin: src/ladmin/GNUmakefile common
- $(MAKE) -C src/$@ $(MKDEF)
-
-plugins addons: src/plugins/GNUmakefile common
- $(MAKE) -C src/plugins $(MKDEF)
-
-webserver:
- $(MAKE) -C src/$@ $(MKDEF)
-
-tools:
- $(MAKE) -C src/tool $(MKDEF)
-
-ifdef SQLFLAG
-converters: src/txt-converter/GNUmakefile common
- $(MAKE) -C src/txt-converter $(MKDEF)
-else
-converters:
- $(MAKE) SQLFLAG=1 $@
-endif
-
-zlib:
- $(MAKE) -C src/$@ $(MKDEF)
-
-clean: src/common/GNUmakefile src/login/GNUmakefile src/login_sql/GNUmakefile \
- src/char/GNUmakefile src/char_sql/GNUmakefile src/map/GNUmakefile \
- src/ladmin/GNUmakefile src/plugins/GNUmakefile src/txt-converter/GNUmakefile
- rm -f Makefile.cache
- $(MAKE) -C src/common $@
- $(MAKE) -C src/login $@
- $(MAKE) -C src/login_sql $@
- $(MAKE) -C src/char $@
- $(MAKE) -C src/char_sql $@
- $(MAKE) -C src/map $@
- $(MAKE) -C src/ladmin $@
- $(MAKE) -C src/plugins $@
- $(MAKE) -C src/zlib $@
- $(MAKE) -C src/txt-converter $@
-
-depend: src/common/GNUmakefile src/login/GNUmakefile src/login_sql/GNUmakefile \
- src/char/GNUmakefile src/char_sql/GNUmakefile src/map/GNUmakefile \
- src/ladmin/GNUmakefile src/plugins/GNUmakefile src/txt-converter/GNUmakefile
- cd src/common; makedepend -fGNUmakefile -pobj/ -Y. *.c; cd ../..;
- cd src/login; makedepend -DTXT_ONLY -fGNUmakefile -Y. -Y../common *.c; cd ../..;
- cd src/login_sql; makedepend -fGNUmakefile -Y. -Y../common *.c; cd ../..;
- cd src/char; makedepend -DTXT_ONLY -fGNUmakefile -Y. -Y../common *.c; cd ../..;
- cd src/char_sql; makedepend -fGNUmakefile -Y. -Y../common *.c; cd ../..;
- cd src/map; makedepend -DTXT_ONLY -fGNUmakefile -ptxtobj/ -Y. -Y../common *.c; cd ../..;
- cd src/map; makedepend -fGNUmakefile -a -psqlobj/ -Y. -Y../common *.c; cd ../..;
- cd src/ladmin; makedepend -fGNUmakefile -Y. -Y../common *.c; cd ../..;
- cd src/txt-converter; makedepend -DTXT_SQL_CONVERT -fGNUmakefile -Y. -Y../common *.c; cd ../..;
- $(MAKE) -C src/plugins $@
-
-Makefile.cache:
- printf "$(subst ",\",$(MKDEF))" > Makefile.cache
-
-src/%/GNUmakefile: src/%/Makefile
- sed -e 's/$$>/$$^/' $< > $@
-
-src/common/GNUmakefile: src/common/Makefile
-src/login/GNUmakefile: src/login/Makefile
-src/login_sql/GNUmakefile: src/login_sql/Makefile
-src/char/GNUmakefile: src/char/Makefile
-src/char_sql/GNUmakefile: src/char_sql/Makefile
-src/map/GNUmakefile: src/map/Makefile
-src/plugins/GNUmakefile: src/plugins/Makefile
-src/ladmin/GNUmakefile: src/ladmin/Makefile
-src/txt-converter/GNUmakefile: src/txt-converter/Makefile
-
-install: conf/%.conf conf/%.txt
- $(shell mkdir -p /opt/eathena/bin/)
- $(shell mkdir -p /opt/eathena/etc/eathena/)
- $(shell mkdir -p /opt/eathena/var/log/eathena/)
- $(shell mv save /opt/eathena/etc/eathena/save)
- $(shell mv db /opt/eathena/etc/eathena/db)
- $(shell mv conf /opt/eathena/etc/eathena/conf)
- $(shell mv npc /opt/eathena/etc/eathena/npc)
- $(shell mv log/* /opt/eathena/var/log/eathena/)
- $(shell cp *-server* /opt/eathena/bin/)
- $(shell cp ladmin /opt/eathena/bin/)
- $(shell ln -s /opt/eathena/etc/eathena/save/ /opt/eathena/bin/)
- $(shell ln -s /opt/eathena/etc/eathena/db/ /opt/eathena/bin/)
- $(shell ln -s /opt/eathena/etc/eathena/conf/ /opt/eathena/bin/)
- $(shell ln -s /opt/eathena/etc/eathena/npc/ /opt/eathena/bin/)
- $(shell ln -s /opt/eathena/var/log/eathena/ /opt/eathena/bin/log)
-
-bin-clean:
- $(shell rm /opt/eathena/bin/login-server*)
- $(shell rm /opt/eathena/bin/char-server*)
- $(shell rm /opt/eathena/bin/map-server*)
- $(shell rm /opt/eathena/bin/ladmin)
-
-uninstall:
- bin-clean
- $(shell rm /opt/eathena/bin/save)
- $(shell rm /opt/eathena/bin/db)
- $(shell rm /opt/eathena/bin/conf)
- $(shell rm /opt/eathena/bin/npc)
- $(shell rm /opt/eathena/bin/log)
- $(shell rm -rf /opt/eathena/etc/eathena)
- $(shell rm -rf /opt/eathena/var/log/eathena)
+ +CACHED = $(shell ls | grep Makefile.cache) +ifeq ($(findstring Makefile.cache,$(CACHED)), Makefile.cache) +MKDEF = $(shell cat Makefile.cache) +else + +CC = gcc -pipe +# CC = g++ --pipe + +MAKE = make +# MAKE = gmake + +OPT = -g +OPT += -O2 +# OPT += -O3 +# OPT += -mmmx +# OPT += -msse +# OPT += -msse2 +# OPT += -msse3 +# OPT += -rdynamic +OPT += -ffast-math +# OPT += -fbounds-checking +# OPT += -fstack-protector +# OPT += -fomit-frame-pointer +OPT += -Wall -Wno-sign-compare +# Uncomment this one if you are using GCC 4.X +# OPT += -Wno-unused-parameter -Wno-pointer-sign +# Makes map-wide script variables be saved to SQL instead of TXT files. +# OPT += -DMAPREGSQL +# Turbo is an alternate socket access implementation which should be faster. +# DO NOT ENABLE YET as it isn't quite ready for general usage. +# OPT += -DTURBO +# Enable the perl regular expression support for scripts +# OPT += -DPCRE_SUPPORT +# OPT += -DGCOLLECT +# OPT += -DMEMWATCH +# OPT += -DDMALLOC -DDMALLOC_FUNC_CHECK +# OPT += -DBCHECK + +# LIBS += -lgc +# LIBS += -ldmalloc +# LIBS += -L/usr/local/lib -lpcre + +PLATFORM = $(shell uname) + +ifeq ($(findstring Linux,$(PLATFORM)), Linux) + LIBS += -ldl +endif + +ifeq ($(findstring SunOS,$(PLATFORM)), SunOS) + LIBS += -lsocket -lnsl -ldl + MAKE = gmake +endif + +ifeq ($(findstring FreeBSD,$(PLATFORM)), FreeBSD) + MAKE = gmake + OS_TYPE = -D__FREEBSD__ +endif + +ifeq ($(findstring NetBSD,$(PLATFORM)), NetBSD) + MAKE = gmake + OS_TYPE = -D__NETBSD__ +endif + +ifeq ($(findstring CYGWIN,$(PLATFORM)), CYGWIN) + OPT += -DFD_SETSIZE=4096 + ifeq ($(findstring mingw,$(shell gcc --version)), mingw) + IS_MINGW = 1 + OS_TYPE = -DMINGW + LIBS += -L../.. -lwsock32 + else + OS_TYPE = -DCYGWIN + endif +endif + +CFLAGS = $(OPT) -I../common $(OS_TYPE) + +ifdef SQLFLAG + ifdef IS_MINGW + CFLAGS += -I../mysql + LIBS += -lmysql + else + MYSQLFLAG_CONFIG = $(shell which mysql_config) + ifeq ($(findstring /,$(MYSQLFLAG_CONFIG)), /) + MYSQLFLAG_VERSION = $(shell $(MYSQLFLAG_CONFIG) --version | sed s:\\..*::) + ifeq ($(findstring 5,$(MYSQLFLAG_VERSION)), 5) + MYSQLFLAG_CONFIG_ARGUMENT = --include + else + MYSQLFLAG_CONFIG_ARGUMENT = --cflags + endif + CFLAGS += $(shell $(MYSQLFLAG_CONFIG) $(MYSQLFLAG_CONFIG_ARGUMENT)) + LIBS += $(shell $(MYSQLFLAG_CONFIG) --libs) + else + CFLAGS += -I/usr/local/include/mysql + LIBS += -L/usr/local/lib/mysql -lmysqlclient + endif + endif +endif + +ifneq ($(findstring -lz,$(LIBS)), -lz) + LIBS += -lz +endif +ifneq ($(findstring -lm,$(LIBS)), -lm) + LIBS += -lm +endif + +MKDEF = CC="$(CC)" CFLAGS="$(CFLAGS)" LIB_S="$(LIBS)" + +endif + +.PHONY: txt sql common login login_sql char char_sql map map_sql ladmin converters \ + addons plugins tools webserver clean zlib depend + +txt : Makefile.cache conf common login char map ladmin + +ifdef SQLFLAG +sql: Makefile.cache conf common login_sql char_sql map_sql +else +sql: + $(MAKE) SQLFLAG=1 $@ +endif + +conf: + cp -r conf-tmpl conf + rm -rf conf/.svn conf/*/.svn + cp -r save-tmpl save + rm -rf save/.svn + +common: src/common/GNUmakefile + $(MAKE) -C src/$@ $(MKDEF) + +login: src/login/GNUmakefile common + $(MAKE) -C src/$@ $(MKDEF) txt + +char: src/char/GNUmakefile common + $(MAKE) -C src/$@ $(MKDEF) txt + +map: src/map/GNUmakefile common + $(MAKE) -C src/$@ $(MKDEF) txt + +login_sql: src/login_sql/GNUmakefile common + $(MAKE) -C src/$@ $(MKDEF) sql + +char_sql: src/char_sql/GNUmakefile common + $(MAKE) -C src/$@ $(MKDEF) sql + +map_sql: src/map/GNUmakefile common + $(MAKE) -C src/map $(MKDEF) sql + +ladmin: src/ladmin/GNUmakefile common + $(MAKE) -C src/$@ $(MKDEF) + +plugins addons: src/plugins/GNUmakefile common + $(MAKE) -C src/plugins $(MKDEF) + +webserver: + $(MAKE) -C src/$@ $(MKDEF) + +tools: + $(MAKE) -C src/tool $(MKDEF) + +ifdef SQLFLAG +converters: src/txt-converter/GNUmakefile common + $(MAKE) -C src/txt-converter $(MKDEF) +else +converters: + $(MAKE) SQLFLAG=1 $@ +endif + +zlib: + $(MAKE) -C src/$@ $(MKDEF) + +clean: src/common/GNUmakefile src/login/GNUmakefile src/login_sql/GNUmakefile \ + src/char/GNUmakefile src/char_sql/GNUmakefile src/map/GNUmakefile \ + src/ladmin/GNUmakefile src/plugins/GNUmakefile src/txt-converter/GNUmakefile + rm -f Makefile.cache + $(MAKE) -C src/common $@ + $(MAKE) -C src/login $@ + $(MAKE) -C src/login_sql $@ + $(MAKE) -C src/char $@ + $(MAKE) -C src/char_sql $@ + $(MAKE) -C src/map $@ + $(MAKE) -C src/ladmin $@ + $(MAKE) -C src/plugins $@ + $(MAKE) -C src/zlib $@ + $(MAKE) -C src/txt-converter $@ + +depend: src/common/GNUmakefile src/login/GNUmakefile src/login_sql/GNUmakefile \ + src/char/GNUmakefile src/char_sql/GNUmakefile src/map/GNUmakefile \ + src/ladmin/GNUmakefile src/plugins/GNUmakefile src/txt-converter/GNUmakefile + cd src/common; makedepend -fGNUmakefile -pobj/ -Y. *.c; cd ../..; + cd src/login; makedepend -DTXT_ONLY -fGNUmakefile -Y. -Y../common *.c; cd ../..; + cd src/login_sql; makedepend -fGNUmakefile -Y. -Y../common *.c; cd ../..; + cd src/char; makedepend -DTXT_ONLY -fGNUmakefile -Y. -Y../common *.c; cd ../..; + cd src/char_sql; makedepend -fGNUmakefile -Y. -Y../common *.c; cd ../..; + cd src/map; makedepend -DTXT_ONLY -fGNUmakefile -ptxtobj/ -Y. -Y../common *.c; cd ../..; + cd src/map; makedepend -fGNUmakefile -a -psqlobj/ -Y. -Y../common *.c; cd ../..; + cd src/ladmin; makedepend -fGNUmakefile -Y. -Y../common *.c; cd ../..; + cd src/txt-converter; makedepend -DTXT_SQL_CONVERT -fGNUmakefile -Y. -Y../common *.c; cd ../..; + $(MAKE) -C src/plugins $@ + +Makefile.cache: + printf "$(subst ",\",$(MKDEF))" > Makefile.cache + +src/%/GNUmakefile: src/%/Makefile + sed -e 's/$$>/$$^/' $< > $@ + +src/common/GNUmakefile: src/common/Makefile +src/login/GNUmakefile: src/login/Makefile +src/login_sql/GNUmakefile: src/login_sql/Makefile +src/char/GNUmakefile: src/char/Makefile +src/char_sql/GNUmakefile: src/char_sql/Makefile +src/map/GNUmakefile: src/map/Makefile +src/plugins/GNUmakefile: src/plugins/Makefile +src/ladmin/GNUmakefile: src/ladmin/Makefile +src/txt-converter/GNUmakefile: src/txt-converter/Makefile + +install: conf/%.conf conf/%.txt + $(shell mkdir -p /opt/eathena/bin/) + $(shell mkdir -p /opt/eathena/etc/eathena/) + $(shell mkdir -p /opt/eathena/var/log/eathena/) + $(shell mv save /opt/eathena/etc/eathena/save) + $(shell mv db /opt/eathena/etc/eathena/db) + $(shell mv conf /opt/eathena/etc/eathena/conf) + $(shell mv npc /opt/eathena/etc/eathena/npc) + $(shell mv log/* /opt/eathena/var/log/eathena/) + $(shell cp *-server* /opt/eathena/bin/) + $(shell cp ladmin /opt/eathena/bin/) + $(shell ln -s /opt/eathena/etc/eathena/save/ /opt/eathena/bin/) + $(shell ln -s /opt/eathena/etc/eathena/db/ /opt/eathena/bin/) + $(shell ln -s /opt/eathena/etc/eathena/conf/ /opt/eathena/bin/) + $(shell ln -s /opt/eathena/etc/eathena/npc/ /opt/eathena/bin/) + $(shell ln -s /opt/eathena/var/log/eathena/ /opt/eathena/bin/log) + +bin-clean: + $(shell rm /opt/eathena/bin/login-server*) + $(shell rm /opt/eathena/bin/char-server*) + $(shell rm /opt/eathena/bin/map-server*) + $(shell rm /opt/eathena/bin/ladmin) + +uninstall: + bin-clean + $(shell rm /opt/eathena/bin/save) + $(shell rm /opt/eathena/bin/db) + $(shell rm /opt/eathena/bin/conf) + $(shell rm /opt/eathena/bin/npc) + $(shell rm /opt/eathena/bin/log) + $(shell rm -rf /opt/eathena/etc/eathena) + $(shell rm -rf /opt/eathena/var/log/eathena) |