From 3d5541a976ab2008b1532ae3632d5489fa87badb Mon Sep 17 00:00:00 2001 From: Lance Date: Fri, 2 Nov 2007 00:30:47 +0000 Subject: [PATCH] MorphOS crosscompile target & Mac OSX crosscompile targets (ppc32, ppc64 and x86) added. Changed output names of morphos and macosx to be unique to their OS so they werent the same as linux's binary names exactly the same as the linux output, reason was it made batch cross-compiling difficult when "fteqw.sv" is the same filename for Linux, MorphOS & Mac OSX binaries. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@2776 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/Makefile | 109 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 86 insertions(+), 23 deletions(-) diff --git a/engine/Makefile b/engine/Makefile index cfb8a2e8d..e88460f0a 100644 --- a/engine/Makefile +++ b/engine/Makefile @@ -27,6 +27,60 @@ ifeq ($(FTE_TARGET),win32) endif endif endif + +#crosscompile macosx from linux, default target ppc 32bit +ifeq ($(FTE_TARGET),macosx) + ifeq ($(shell $(CC) -v 2>&1 | grep apple),) + ifneq ($(shell which powerpc-apple-darwin8-gcc 2> /dev/null),) + CC=powerpc-apple-darwin8-gcc + STRIP=powerpc-apple-darwin8-strip + #seems, macosx has a more limited version of strip + STRIPFLAGS= + BITS=32 + EXTENSION=_ppc + endif + endif +endif + +ifeq ($(FTE_TARGET),macosx_ppc64) + ifeq ($(shell $(CC) -v 2>&1 | grep apple),) + ifneq ($(shell which powerpc-apple-darwin8-gcc 2> /dev/null),) + FTE_TARGET=macosx + CC=powerpc-apple-darwin8-gcc -arch ppc64 + STRIP=powerpc-apple-darwin8-strip + #seems, macosx has a more limited version of strip + STRIPFLAGS= + BITS=64 + EXTENSION=_ppc + endif + endif +endif + +ifeq ($(FTE_TARGET),macosx_x86) + ifeq ($(shell $(CC) -v 2>&1 | grep apple),) + ifneq ($(shell which i686-apple-darwin8-gcc 2> /dev/null),) + FTE_TARGET=macosx + # i686-apple-darwin8-gcc's default target is i386, powerpc-apple-darwin8-gcc -arch i386 just invokes i686-apple-darwin8-gcc anyway + CC=i686-apple-darwin8-gcc + STRIP=i686-apple-darwin8-strip + #seems, macosx has a more limited version of strip + STRIPFLAGS= + EXTENSION=_x86 + endif + endif +endif + +#crosscompile morphos from linux +ifeq ($(FTE_TARGET),morphos) + ifeq ($(shell $(CC) -v 2>&1 | grep morphos),) + ifneq ($(shell which ppc-morphos-gcc 2> /dev/null),) + CC=ppc-morphos-gcc + #morphos strip has a 'feature', it strips permissions + STRIP=ppc-morphos-strip + endif + endif +endif + #if you have an x86, you can get gcc to build 32bit or 64bit specific builds, instead of builds for the native platform ifeq ($(FTE_TARGET),linux32) FTE_TARGET=linux @@ -579,13 +633,13 @@ endif MINGL_EXE_NAME=../fteqw.mingl$(BITS) MINGL_DIR=mingl_linux$(BITS) endif -ifeq ($(FTE_TARGET),macosx) - SV_DIR=sv_macosx - GLB_DIR=gl_macosx - GLCL_DIR=glcl_macosx - MINGL_DIR=mingl_macosx - SWB_DIR=sw_macosx - SWCL_DIR=sw_macosx +ifneq ($(shell echo $(FTE_TARGET)|grep macosx),) + SV_DIR=sv_macosx$(EXTENSION)$(BITS) + GLB_DIR=gl_macosx$(EXTENSION)$(BITS) + GLCL_DIR=glcl_macosx$(EXTENSION)$(BITS) + MINGL_DIR=mingl_macosx$(EXTENSION)$(BITS) + SWB_DIR=sw_macosx$(EXTENSION)$(BITS) + SWCL_DIR=sw_macosx$(EXTENSION)$(BITS) GL_CFLAGS=$(GLCFLAGS) -D__MACOSX__ GL_LDFLAGS=-framework AGL -framework OpenGL -framework Cocoa -framework AudioUnit @@ -595,15 +649,18 @@ ifeq ($(FTE_TARGET),macosx) SW_LDFLAGS= SWCL_OBJS=$(SOFTWARE_OBJS) cd_null.o sys_linux.o vid_null.o - GL_EXE_NAME=../fteqw.gl - GLCL_EXE_NAME=../fteqwcl.gl - SW_EXE_NAME=../fteqw.sw - SWCL_EXE_NAME=../fteqwcl.sw - M_EXE_NAME=../fteqw - MCL_EXE_NAME=../fteqwcl - MINGL_EXE_NAME=../fteqw.mingl - MINGL_DIR=mingl_maxosx - + GL_EXE_NAME=../macosx_fteqw.gl$(EXTENSION)$(BITS) + GLCL_EXE_NAME=../macosx_fteqwcl.gl$(EXTENSION)$(BITS) + SW_EXE_NAME=../macosx_fteqw.sw$(EXTENSION)$(BITS) + SWCL_EXE_NAME=../macosx_fteqwcl.sw$(EXTENSION)$(BITS) + M_EXE_NAME=../macosx_fteqw$(EXTENSION)$(BITS) + MCL_EXE_NAME=../macosx_fteqwcl$(EXTENSION)$(BITS) + MINGL_EXE_NAME=../macosx_fteqw.mingl$(EXTENSION)$(BITS) + MINGL_DIR=mingl_macosx$(EXTENSION)$(BITS) + + SV_OBJS=$(COMMON_OBJS) $(SERVER_OBJS) $(PROGS_OBJS) $(SERVERONLY_OBJS) + SV_EXE_NAME=../macosx_fteqw.sv$(EXTENSION)$(BITS) + SV_CFLAGS=$(SERVER_ONLY_CFLAGS) #seems, macosx has a more limited version of strip STRIPFLAGS= @@ -614,31 +671,36 @@ ifeq ($(FTE_TARGET),morphos) SV_LDFLAGS=-lz GLCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) gl_vidmorphos.o in_morphos.o snd_morphos.o cd_null.o sys_morphos.o - GL_EXE_NAME=../fteqw.gl - GLCL_EXE_NAME=../fteqwcl.gl + GL_EXE_NAME=../morphos_fteqw.gl + GLCL_EXE_NAME=../morphos_fteqwcl.gl GL_LDFLAGS=$(GLLDFLAGS) -ldl $(IMAGELDFLAGS) -lz GL_CFLAGS=$(GLCFLAGS) -noixemul GLB_DIR=gl_morphos GLCL_DIR=glcl_morphos SWCL_OBJS=$(SOFTWARE_OBJS) vid_morphos.o in_morphos.o snd_morphos.o cd_null.o sys_morphos.o - SW_EXE_NAME=../fteqw.sw - SWCL_EXE_NAME=../fteqwcl.sw + SW_EXE_NAME=../morphos_fteqw.sw + SWCL_EXE_NAME=../morphos_fteqwcl.sw SW_LDFLAGS=$(SWLDFLAGS) -ldl $(IMAGELDFLAGS) -lz SW_CFLAGS=$(SWCFLAGS) -noixemul SWB_DIR=sw_morphos SWCL_DIR=swcl_morphos MCL_OBJS=$(GLQUAKE_OBJS) $(SOFTWARE_OBJS) gl_vidmorphos.o vid_morphos.o in_morphos.o snd_morphos.o cd_null.o sys_morphos.o - M_EXE_NAME=../fteqw - MCL_EXE_NAME=../fteqwcl + M_EXE_NAME=../morphos_fteqw + MCL_EXE_NAME=../morphos_fteqwcl M_LDFLAGS=$(GLLDFLAGS) M_CFLAGS=$(SWCFLAGS) $(GLCFLAGS) MB_DIR=m_morphos MCL_DIR=mcl_morphos - MINGL_EXE_NAME=../fteqw.mingl + MINGL_EXE_NAME=../morphos_fteqw.mingl MINGL_DIR=mingl_morphos + + #morphos dedicated server doesnt compile: alloca.h: No such file or directory + #SV_OBJS=$(COMMON_OBJS) $(SERVER_OBJS) $(PROGS_OBJS) $(SERVERONLY_OBJS) + #SV_EXE_NAME=../morphos_fteqw.sv$(BITS) + #SV_CFLAGS=$(SERVER_ONLY_CFLAGS) endif @@ -898,6 +960,7 @@ help: @-echo "gl" @-echo "sw" @-echo "m" + @-echo "mingl" @-echo "d3d (for windows builds)" @-echo "mcl (currently broken)" @-echo "glcl (currently broken)"