#############################################################################
# SEE BELOW FOR DIFFERENT CHANGES TO MAKE FOR MACOSX OR UNIX/LINUX/PC
# updated 07/11/03 to support macosx options (thanks darkfiber)
# updated 09/17/03 to offer some alternative file link locations
# updated 11/10/03 to better explain link options, and modify freebsd to use altlink option
# updated 1/26/04 with mirc color code source file added
# updated 3/24/04 added include directory ./ (from SUSE linux text)
# updated 8/30/04 added support for -fPIC option on nix64 target
# updated 01/8/05 added new blowfish cbc files
#############################################################################
#############################################################################
CC = gcc
LOAD=c++
#############################################################################
#############################################################################
# PLATFORM DEPENDENT FLAGS
CFLAGS_MAC = "-c -x c++ -DMACOSX -fno-common"
LDFLAGS_MAC = " -Wl -dynamiclib "
CFLAGS_GENERIC = "-c -x c++ -fno-common"
CFLAGS_GENERIC64 = "-c -x c++ -fPIC -fno-common"
LDFLAGS_GENERIC = "-shared -Wl,-soname,mircryption.so "
LDFLAGS_GENERIC64 = "-shared -fPIC -Wl,-soname,mircryption.so "
CFLAGS2_BIGENDIAN = "-DBIG_ENDIAN -fno-common"
CFLAGS2_LITTLENDIAN = "-DLITTLE_ENDIAN -fno-common"
#############################################################################
#############################################################################
# PLATFORM TARGETS
all: .DEFAULT
.DEFAULT:
@echo "To Build mircryption, type 'make TARGET' (generic | linux | nix64bit | freebsd | macosx | windows | altlink | altlink2)"
@echo " or type: 'make clean' to clean .o and .so"
@echo " or type: 'make install' to try to install the mircryption.so dll into ~/.xchat2"
@echo "try altlink1 or altlink2 if your linker complains about not being able to find the .o files"
@echo " altlink1 may be good for freebsd"
macosx:
$(MAKE) _mircryption $(MACFLAGS) CFLAGS=$(CFLAGS_MAC) LDFLAGS=$(LDFLAGS_MAC) CFLAGS2=$(CFLAGS2_BIGENDIAN)
unix linux windows generic:
$(MAKE) _mircryption $(GENERICFLAGS) CFLAGS=$(CFLAGS_GENERIC) LDFLAGS=$(LDFLAGS_GENERIC)
nix64bit:
$(MAKE) _mircryption $(GENERICFLAGS) CFLAGS=$(CFLAGS_GENERIC64) LDFLAGS=$(LDFLAGS_GENERIC64)
altlink freebsd:
$(MAKE) _mircryption_altlink $(GENERICFLAGS) CFLAGS=$(CFLAGS_GENERIC) LDFLAGS=$(LDFLAGS_GENERIC)
altlink2:
$(MAKE) _mircryption_altlink2 $(GENERICFLAGS) CFLAGS=$(CFLAGS_GENERIC) LDFLAGS=$(LDFLAGS_GENERIC)
#############################################################################
#############################################################################
SOURCE = ../mircryptionclass.cpp ../md5class.cpp ../md5c.cpp ../mc_blowfish.cpp ../b64stuff.cpp ../oldblowfish.cpp ../newblowfish.cpp ../BlowfishCbc.cpp mircryption.cpp mirc_codes.cpp
OBJECTS = ../mircryptionclass.o ../md5class.o ../md5c.o ../mc_blowfish.o ../b64stuff.o ../oldblowfish.o ../newblowfish.o ../BlowfishCbc.o mircryption.o mirc_codes.o
INCDIRS = -I../ -I./
%.o : %.cpp
@echo Compiling $*
$(CC) $(CFLAGS) $(CFLAGS2) $(INCDIRS) $*.cpp -o $*.o
_mircryption: $(OBJECTS)
@echo "Linking mircryption library..."
# old link statement was incompatible with some platforms: $(LOAD) $(LDFLAGS) -shared -Wl,-soname,mircryption.so -o mircryption.so $(OBJECTS) -lstdc++
$(LOAD) $(LDFLAGS) -o mircryption.so *.o ../*.o -lstdc++
_mircryption_altlink: $(OBJECTS)
@echo "Linking mircryption library..."
# this is for linkers (freebsd?) which put all the .o in the current directory
$(LOAD) $(LDFLAGS) -o mircryption.so *.o -lstdc++
_mircryption_altlink2: $(OBJECTS)
@echo "Linking mircryption library..."
$(LOAD) $(LDFLAGS) -shared -Wl,-soname,mircryption.so -o mircryption.so $(OBJECTS) -lstdc++
install:
@echo "Trying to install mircryption.so into ~/.xchat2 (see readme.txt for more info)"
cp mircryption.so ~/.xchat2
clean:
@echo Deleting intermediate files
rm -f *.so
rm -f *.o
rm -f ../*.o
#############################################################################
syntax highlighted by Code2HTML, v. 0.9.1