summaryrefslogblamecommitdiff
path: root/Makefile.in
blob: cd8b384b4dac474b56866d9982b676f4f389ab1c (plain) (tree)
1
2
3
4
5
6
7
8
9
10



                        

                                                                      



                                                        
                                                    

                                     
                               




                                      
                                 

     







                                 
 
                                                                     

                    
                   


                   
               
                 
                
              
                  


                   

                   


                                  


                                      


                                      
                               
                                 
 
                             
                            



                               
                       

                            


                            


                               
       

                                       


                                                                                                                                  
 

                                 
                                         
                                         
                                
                               
                              
                                  
                               
                               

     
                                                                         
                                     
                                                                       
                                                                              
                                                                
                                                                 
                                                                
                                                               
                                                                 
                                                                                            
                                                            
                                                                                               
                                                       
                                            








                                                                     



                                                        


                                                                     
                                      
                                                                                                                        













                                                                         

          


                                                  

          
                                                                                                                        
                 






                                                    
@SET_MAKE@

HAVE_MYSQL=@HAVE_MYSQL@
ifeq ($(HAVE_MYSQL),yes)
	ALL_DEPENDS=common_sql login_sql char_sql map_sql tools import
	SQL_DEPENDS=common_sql login_sql char_sql map_sql import
	COMMON_SQL_DEPENDS=mt19937ar libconfig
	LOGIN_SQL_DEPENDS=mt19937ar libconfig common_sql
	CHAR_SQL_DEPENDS=mt19937ar libconfig common_sql
	MAP_SQL_DEPENDS=mt19937ar libconfig common_sql
	TOOLS_DEPENDS=mt19937ar libconfig common_sql
	CONVERTERS_DEPENDS=common_sql
else
	ALL_DEPENDS=needs_mysql
	SQL_DEPENDS=needs_mysql
	COMMON_SQL_DEPENDS=needs_mysql
	LOGIN_SQL_DEPENDS=needs_mysql
	CHAR_SQL_DEPENDS=needs_mysql
	MAP_SQL_DEPENDS=needs_mysql
	TOOLS_DEPENDS=needs_mysql
endif

WITH_PLUGINS=@WITH_PLUGINS@
ifeq ($(WITH_PLUGINS),yes)
	ALL_DEPENDS+=plugins
	PLUGIN_DEPENDS=common_sql
else
	PLUGIN_DEPENDS=no_plugins
endif


#####################################################################
.PHONY: sql  \
	common_sql \
	mt19937ar \
	login_sql \
	char_sql \
	map_sql \
	tools \
	plugins \
	import \
	test \
	clean help

all: $(ALL_DEPENDS)

sql: $(SQL_DEPENDS)

common_sql: $(COMMON_SQL_DEPENDS)
	@$(MAKE) -C src/common sql

mt19937ar:
	@$(MAKE) -C 3rdparty/mt19937ar

libconfig:
	@$(MAKE) -C 3rdparty/libconfig

login_sql: $(LOGIN_SQL_DEPENDS)
	@$(MAKE) -C src/login sql

char_sql: $(CHAR_SQL_DEPENDS)
	@$(MAKE) -C src/char

map_sql: $(MAP_SQL_DEPENDS)
	@$(MAKE) -C src/map sql

tools: $(TOOLS_DEPENDS)
	@$(MAKE) -C src/tool

test:
	@$(MAKE) -C src/test

plugins: $(PLUGIN_DEPENDS)
	@$(MAKE) -C src/plugins

import:
	@# 1) create conf/import folder
	@# 2) add missing files
	@echo "building conf/import folder..."
	@if test ! -d conf/import ; then mkdir conf/import ; fi
	@for f in $$(ls conf/import-tmpl) ; do if test ! -e conf/import/$$f ; then cp conf/import-tmpl/$$f conf/import ; fi ; done

clean:
	@$(MAKE) -C src/common $@
	@$(MAKE) -C 3rdparty/mt19937ar $@
	@$(MAKE) -C 3rdparty/libconfig $@
	@$(MAKE) -C src/login $@
	@$(MAKE) -C src/char $@
	@$(MAKE) -C src/map $@
	@$(MAKE) -C src/plugins $@
	@$(MAKE) -C src/tool $@
	@$(MAKE) -C src/test $@

help:
	@echo "most common targets are 'all' 'sql' 'conf' 'clean' 'help'"
	@echo "possible targets are:"
	@echo "'common_sql'  - builds object files used in SQL servers"
	@echo "'mt19937ar'   - builds object file of Mersenne Twister MT19937"
	@echo "'libconfig'   - builds object files of libconfig"
	@echo "'login_sql'   - builds login server (SQL version)"
	@echo "'char_sql'    - builds char server (SQL version)"
	@echo "'map_sql'     - builds map server (SQL version)"
	@echo "'tools'       - builds all the tools in src/tools"
	@echo "'import'      - builds conf/import folder from the template conf/import-tmpl"
	@echo "'all'         - builds all the above targets"
	@echo "'sql'         - builds sql servers (targets 'common_sql' 'login_sql' 'char_sql'"
	@echo "                'map_sql' and 'import')"
	@echo "'test'        - builds tests"
	@echo "'clean'       - cleans builds and objects"
	@echo "'help'        - outputs this message"

#####################################################################

needs_mysql:
	@echo "MySQL not found or disabled by the configure script"
	@exit 1

no_plugins:
	@echo "Plugins disabled by the configure script"
	@exit 1

#####################################################################
# TODO

install:	conf/%.conf conf/%.txt
	$(shell read -p "WARNING: This target does not work properly yet. Press Ctrl+C to cancel or Enter to continue.")
	$(shell mkdir -p /opt/rathena/bin/)
	$(shell mkdir -p /opt/rathena/etc/rathena/)
	$(shell mkdir -p /opt/rathena/var/log/rathena/)
	$(shell mv save /opt/rathena/etc/rathena/save)
	$(shell mv db /opt/rathena/etc/rathena/db)
	$(shell mv conf /opt/rathena/etc/rathena/conf)
	$(shell mv npc /opt/rathena/etc/rathena/npc)
	$(shell mv log/* /opt/rathena/var/log/rathena/)
	$(shell cp *-server* /opt/rathena/bin/)
	$(shell ln -s /opt/rathena/etc/rathena/save/ /opt/rathena/bin/)
	$(shell ln -s /opt/rathena/etc/rathena/db/ /opt/rathena/bin/)
	$(shell ln -s /opt/rathena/etc/rathena/conf/ /opt/rathena/bin/)
	$(shell ln -s /opt/rathena/etc/rathena/npc/ /opt/rathena/bin/)
	$(shell ln -s /opt/rathena/var/log/rathena/ /opt/rathena/bin/log)

bin-clean:
	$(shell rm /opt/rathena/bin/login-server*)
	$(shell rm /opt/rathena/bin/char-server*)
	$(shell rm /opt/rathena/bin/map-server*)

uninstall:
	$(shell read -p "WARNING: This target does not work properly yet. Press Ctrl+C to cancel or Enter to continue.")
	bin-clean
	$(shell rm /opt/rathena/bin/save)
	$(shell rm /opt/rathena/bin/db)
	$(shell rm /opt/rathena/bin/conf)
	$(shell rm /opt/rathena/bin/npc)
	$(shell rm /opt/rathena/bin/log)
	$(shell rm -rf /opt/rathena/etc/rathena)
	$(shell rm -rf /opt/rathena/var/log/rathena)