From a00fbaaf2d651837404389ba78070c16468d1e8d Mon Sep 17 00:00:00 2001 From: Merlijn Wajer Date: Sat, 11 Sep 2010 19:11:05 +0200 Subject: [PATCH] Makefile change by moparisthebest --- Projects/Simba/Makefile | 58 +++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/Projects/Simba/Makefile b/Projects/Simba/Makefile index 7ccfc44..05ee825 100644 --- a/Projects/Simba/Makefile +++ b/Projects/Simba/Makefile @@ -9,23 +9,24 @@ # Set these #lazaruspath := /usr/lib/lazarus/0.9.28.2 lazaruspath := ../../../lazarus +# set this correctly only if you want to apply and reverse the patch automatically rutis_x64_patch := ../../../0-rutis-x64.patch # uncomment this or send distrib=1 via command line to build the distributable archive as well +# if you set distrib, be sure to set the next option as well #distrib := 1 # if you didn't set distrib, the following option isn't used # The plugins directory needs to have the following structure (for SMART, you can add any other plugins you want): -# currently SMART doesn't compile for x64 windows, so a txt placeholder is there to tell people that -#all-in-one/libsmart64.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped -#all-in-one/libsmart.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped -#all-in-one/Public_SMART64.dll.txt: ASCII text -#all-in-one/Public_SMART.dll: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit -#i386-linux/libsmart.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped -#i386-win32/Public_SMART.dll: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit -#x86_64-linux/libsmart.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped -#x86_64-win64/Public_SMART.dll.txt: ASCII text +# all-in-one/libsmart64.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped +# all-in-one/libsmart.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped +# all-in-one/Public_SMART64.dll: PE32+ executable for MS Windows (DLL) (GUI) +# all-in-one/Public_SMART.dll: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit +# i386-linux/libsmart.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped +# i386-win32/Public_SMART.dll: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit +# x86_64-linux/libsmart.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped +# x86_64-win64/Public_SMART.dll: PE32+ executable for MS Windows (DLL) (GUI) plugins_dir := ../../../plugins # Shouldn't need to touch below here, unless you add a unit or something... @@ -54,6 +55,15 @@ else our_target := unknown endif +# now we need to see if we have the rutis_x64_patch or not +# we define 'have_rutis_x64_patch' if we have it +# we don't want to try to apply it or reverse it if it +# doesn't exist or the make will error out +ifneq ($(strip $(wildcard $(rutis_x64_patch))),) + # the patch file exists + have_rutis_x64_patch := 1 +endif + CC := fpc build := $(CC) @@ -82,7 +92,7 @@ unknown: clean: # clean this directory - rm -f *.a *.o *.ppu *.rst Simba.i386-* Simba.x86_64-* ../../*.7z + rm -f *.a *.o *.obj *.ppu *.rst Simba.i386-* Simba.x86_64-* ../../*.7z # now clean all the unit directories (I love Bash...) rm -f ../../Units/*/*.a ../../Units/*/*.o ../../Units/*/*.ppu ../../Units/*/*.rst @@ -108,20 +118,40 @@ ifdef distrib endif i386-linux: +# reverse it if it has been applied +ifdef have_rutis_x64_patch + -patch -R -N -r- -p1 -d../../ < $(rutis_x64_patch) +endif $(MAKE) recursive_build platform="i386-linux" widgetset="gtk2" platform_flags="-Tlinux -Pi386 -dUseCThreads" x86_64-linux: - patch -p1 -d ../../ < $(rutis_x64_patch) +# apply the patch +ifdef have_rutis_x64_patch + -patch -N -r- -p1 -d../../ < $(rutis_x64_patch) +endif $(MAKE) recursive_build platform="x86_64-linux" widgetset="gtk2" platform_flags="-Tlinux -Px86_64 -dUseCThreads" - patch -R -p1 -d ../../ < $(rutis_x64_patch) +# reverse it +ifdef have_rutis_x64_patch + -patch -R -N -r- -p1 -d../../ < $(rutis_x64_patch) +endif i386-win32: +# reverse it if it has been applied +ifdef have_rutis_x64_patch + -patch -R -N -r- -p1 -d../../ < $(rutis_x64_patch) +endif $(MAKE) recursive_build platform="i386-win32" widgetset="win32" platform_flags="-Twin32 -Pi386" x86_64-win64: - patch -p1 -d ../../ < $(rutis_x64_patch) +# apply the patch +ifdef have_rutis_x64_patch + -patch -N -r- -p1 -d../../ < $(rutis_x64_patch) +endif $(MAKE) recursive_build platform="x86_64-win64" widgetset="win32" platform_flags="-Twin64 -Px86_64" - patch -R -p1 -d ../../ < $(rutis_x64_patch) +# reverse it +ifdef have_rutis_x64_patch + -patch -R -N -r- -p1 -d../../ < $(rutis_x64_patch) +endif all: i386-linux x86_64-linux i386-win32 x86_64-win64