123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- 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
- # OPT += -DMAPREGSQL
- # OPT += -DCHRIF_OLDINFO
- # 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
- all: txt
- 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 -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)
|