aboutsummaryrefslogblamecommitdiff
path: root/Makefile.win32
blob: 8a1192fce25d85b29c04e8540abc5701c381f2f7 (plain) (tree)
1
2
3
4
5
6
7
8
9
10


                    




                                        

                     

                     
                       

                   










                                                                                      








                                       
                                         
                              


                                   

                                       
                                 

                                                        
                                            














                                                   


                                                     



                                                   


                                       

                                     



                                                         

                                     

                                       
                               
                        
                                    







                                         









                                       

                                       

                                       

                                       
                 
                                       

                                       
                 
                                       

                                       
             
 




                                                                              
 


                                   

                         

                             
                      


                               
 








                                             

                                             

                                             

                                             
                 
                                             

                                             
                 
                                             

                                             
             
 
                               
                              
                            
 
         
                                                                                                                                                                  
 
           
                                                                                                                                                                                                                            
 
                  
                                    
 
                     
                                     
include Makefile.inc

ALL : build

REL=..\release
EREL=$(REL)\ejabberd-$(EJABBERD_VERSION)
EBIN_DIR=$(EREL)\ebin
SRC_DIR=$(EREL)\src
PRIV_DIR=$(EREL)\priv
SO_DIR=$(EREL)
MSGS_DIR=$(EREL)\msgs
WIN32_DIR=$(EREL)\win32
DOC_DIR=$(EREL)\doc

NSIS_SCRIPT=win32\ejabberd.nsi
NSIS_HEADER=win32\ejabberd.nsh

installer : $(NSIS_SCRIPT) $(NSIS_HEADER)
	makensis $(NSIS_SCRIPT)

$(NSIS_HEADER) : Makefile.inc
	echo !define OUTFILEDIR "..\$(REL)" >$(NSIS_HEADER)
	echo !define TESTDIR "..\$(REL)\ejabberd-$(EJABBERD_VERSION)" >>$(NSIS_HEADER)
	echo !define VERSION "$(EJABBERD_VERSION)" >>$(NSIS_HEADER)

release_clean :
	if exist $(REL) rd /s /q $(REL)


release : build release_clean
	mkdir $(REL)
	mkdir $(EREL)
	mkdir $(EBIN_DIR)
	copy *.beam $(EBIN_DIR)
	@erase $(EBIN_DIR)\configure.beam
	copy *.app $(EBIN_DIR)
	copy *.dll $(SO_DIR)
	mkdir $(MSGS_DIR)
	copy msgs\*.msg $(MSGS_DIR)
	mkdir $(WIN32_DIR)
	copy win32\ejabberd.cfg $(EREL)
	copy win32\inetrc $(EREL)
	copy $(SYSTEMROOT)\system32\libeay32.dll $(EREL)
	copy $(SYSTEMROOT)\system32\ssleay32.dll $(EREL)
	copy win32\ejabberd.ico $(WIN32_DIR)
	mkdir $(SRC_DIR)
	copy *.app $(SRC_DIR)
	copy *.erl $(SRC_DIR)
	copy *.hrl $(SRC_DIR)
	copy *.c $(SRC_DIR)
	mkdir $(SRC_DIR)\eldap
	copy eldap\eldap.* $(SRC_DIR)\eldap
	copy eldap\ELDAPv3.asn $(SRC_DIR)\eldap
	mkdir $(SRC_DIR)\mod_irc
	copy mod_irc\*.erl $(SRC_DIR)\mod_irc
	copy mod_irc\*.c $(SRC_DIR)\mod_irc
	mkdir $(SRC_DIR)\mod_muc
	copy mod_muc\*.erl $(SRC_DIR)\mod_muc
	mkdir $(SRC_DIR)\mod_pubsub
	copy mod_pubsub\*.erl $(SRC_DIR)\mod_pubsub
	mkdir $(SRC_DIR)\mod_proxy65
	copy mod_proxy65\*.erl $(SRC_DIR)\mod_proxy65
	copy mod_proxy65\*.hrl $(SRC_DIR)\mod_proxy65
	mkdir $(SRC_DIR)\stringprep
	copy stringprep\*.erl $(SRC_DIR)\stringprep
	copy stringprep\*.c $(SRC_DIR)\stringprep
	copy stringprep\*.tcl $(SRC_DIR)\stringprep
	mkdir $(SRC_DIR)\stun
	copy stun\*.erl $(SRC_DIR)\stun
	copy stun\*.hrl $(SRC_DIR)\stun
	mkdir $(SRC_DIR)\tls
	copy tls\*.erl $(SRC_DIR)\tls
	copy tls\*.c $(SRC_DIR)\tls
	mkdir $(SRC_DIR)\ejabberd_zlib
	copy ejabberd_zlib\*.erl $(SRC_DIR)\ejabberd_zlib
	copy ejabberd_zlib\*.c $(SRC_DIR)\ejabberd_zlib
	mkdir $(SRC_DIR)\web
	copy web\*.erl $(SRC_DIR)\web
	mkdir $(SRC_DIR)\odbc
	copy odbc\*.erl $(SRC_DIR)\odbc
	copy odbc\*.sql $(EREL)
	mkdir $(DOC_DIR)
	copy ..\doc\*.txt $(DOC_DIR)
	copy ..\doc\*.html $(DOC_DIR)
	copy ..\doc\*.png $(DOC_DIR)

SOURCE = expat_erl.c
OBJECT = expat_erl.o
DLL    = expat_erl.dll

build : $(DLL) compile-beam all-recursive

all-recursive :
	cd eldap
	nmake -nologo -f Makefile.win32
	cd ..\mod_irc
	nmake -nologo -f Makefile.win32
	cd ..\mod_muc
	nmake -nologo -f Makefile.win32
	cd ..\mod_pubsub
	nmake -nologo -f Makefile.win32
	cd ..\mod_proxy65
	nmake -nologo -f Makefile.win32
	cd ..\stringprep
	nmake -nologo -f Makefile.win32
	cd ..\stun
	nmake -nologo -f Makefile.win32
	cd ..\tls
	nmake -nologo -f Makefile.win32
	cd ..\ejabberd_zlib
	nmake -nologo -f Makefile.win32
	cd ..\web
	nmake -nologo -f Makefile.win32
	cd ..\odbc
	nmake -nologo -f Makefile.win32
	cd ..

compile-beam : XmppAddr.hrl
	erl -s make all report -noinput -s erlang halt

XmppAddr.hrl : XmppAddr.asn1
	erlc -bber_bin +der +compact_bit_string +optimize +noobj XmppAddr.asn1

CLEAN : clean-recursive clean-local

clean-local :
	-@erase $(OBJECT)
	-@erase $(DLL)
	-@erase expat_erl.exp
	-@erase expat_erl.lib
	-@erase *.beam
	-@erase XmppAddr.asn1db
	-@erase XmppAddr.erl
	-@erase XmppAddr.hrl

clean-recursive :
	cd eldap
	nmake -nologo -f Makefile.win32 clean
	cd ..\mod_irc
	nmake -nologo -f Makefile.win32 clean
	cd ..\mod_muc
	nmake -nologo -f Makefile.win32 clean
	cd ..\mod_pubsub
	nmake -nologo -f Makefile.win32 clean
	cd ..\mod_proxy65
	nmake -nologo -f Makefile.win32 clean
	cd ..\stringprep
	nmake -nologo -f Makefile.win32 clean
	cd ..\stun
	nmake -nologo -f Makefile.win32 clean
	cd ..\tls
	nmake -nologo -f Makefile.win32 clean
	cd ..\ejabberd_zlib
	nmake -nologo -f Makefile.win32 clean
	cd ..\web
	nmake -nologo -f Makefile.win32 clean
	cd ..\odbc
	nmake -nologo -f Makefile.win32 clean
	cd ..

distclean : release_clean clean
	-@erase $(NSIS_HEADER)
	-@erase Makefile.inc

CC=cl.exe
CC_FLAGS=-nologo -D__WIN32__ -DWIN32 -DWINDOWS -D_WIN32 -DNT $(EXPAT_FLAG) -MD -Ox -I"$(ERLANG_DIR)\usr\include" -I"$(EI_DIR)\include" -I"$(EXPAT_DIR)\source\lib"

LD=link.exe
LD_FLAGS=-release -nologo -incremental:no -dll "$(EI_DIR)\lib\ei_md.lib" "$(EI_DIR)\lib\erl_interface_md.lib" "$(EXPAT_LIB)" MSVCRT.LIB kernel32.lib advapi32.lib gdi32.lib user32.lib comctl32.lib comdlg32.lib shell32.lib

$(DLL) : $(OBJECT)
	$(LD) $(LD_FLAGS) -out:$@ $<

$(OBJECT) : $(SOURCE)
	$(CC) $(CC_FLAGS) -c -Fo$@ $<