1# 2# Makefile for gracket 3# 4 5PACKAGE = racket 6 7srcdir = @srcdir@ 8prefix = @prefix@ 9exec_prefix = @exec_prefix@ 10datarootdir = @datarootdir@ 11bindir = @bindir@ 12libdir = @libdir@ 13libpltdir = @libpltdir@ 14libpltdir_rel = @libpltdir_rel@ 15etcpltdir = @etcpltdir@ 16sharepltdir = @sharepltdir@ 17collectsdir = @collectsdir@ 18builddir = @builddir@ 19 20# for version.mak: 21mainsrcdir = @srcdir@/../.. 22@INCLUDEDEP@ @srcdir@/../../version/version.mak 23 24WXDIR = $(srcdir)/../wxxt 25 26PLTSRCDIR = $(srcdir)/../.. 27BCBUILDDIR = $(builddir)/.. 28 29NOOP = : 30 31# See ../Makefile about RUN_RACKET_<X>, which 32# typically redirects to RUN_THIS_RACKET_<X>: 33RUN_THIS_RACKET_CGC = ../racket@CGC@ 34RUN_THIS_RACKET_MMM = ../racket@MMM@ 35 36########################### 37# Common Macros # 38########################### 39CC = @CC@ 40LINKER = $(CC) 41RANLIB = @RANLIB@ 42AR = @AR@ 43ARFLAGS = @ARFLAGS@ 44OPTIONS = @OPTIONS@ @MROPTIONS@ 45XLIB = @X_LIBS@ 46LDLIBS = @LIBS@ 47GCDIRECTORY = @GCDIR@ 48WBUILD = @WBUILD@ 49WXVARIANT = @WXVARIANT@ 50 51NOGCINC = $(WXINC) -I$(BCBUILDDIR)/ -I$(PLTSRCDIR)/bc/include/ -I$(PLTSRCDIR)/version/ 52INC = -I$(PLTSRCDIR)/bc/$(GCDIRECTORY) $(NOGCINC) 53CFLAGS = @COMPFLAGS@ @PROFFLAGS@ @CFLAGS@ 54CPPFLAGS = @PREFLAGS@ 55ALL_CFLAGS = $(INC) $(OPTIONS) -D$(WXVARIANT) $(CFLAGS) $(CPPFLAGS) 56LDFLAGS = @LDFLAGS@ 57ARLIBFLAGS = $(LDFLAGS) $(LDLIBS) 58########################### 59 60STRIP_SIGNATURE = @STRIP_SIGNATURE@ 61RESTORE_SIGNATURE = @RESTORE_SIGNATURE@ "${srcdir}/../../mac/entitlements.plist" 62 63GRACKETLINKER = @MZLINKER@ 64 65LIBRKTIO = ../rktio/librktio.@LTA@ 66LIBRKTIO_a = $(LIBRKTIO) 67LIBRKTIO_la = 68 69GRACKETLDLIBS@NOT_MINGW@ = ../libracket.@LIBSFX@ ../libmzgc.@LIBSFX@ $(LIBRKTIO_@LIBSFX@) $(LDLIBS) 70GRACKETLDLIBS@MINGW@ = ../libracket.dll.a ../libmzgc.dll.a $(LDLIBS) -ldelayimp -static-libgcc 71GRACKETLDFLAGS = $(LDFLAGS) -L.. 72 73GRACKETRES@NOT_MINGW@ = 74GRACKETRESDEP@NOT_MINGW@ = 75GRACKETRES@MINGW@ = -mwindows gres.o ../MemoryModule.@LTO@ 76GRACKETRESDEP@MINGW@ = gres.o ../MemoryModule.@LTO@ 77 78LOCALFLAGS_wx_xt = @WX_MMD_FLAG@ 79LOCALFLAGS_wx_mac = -I$(srcdir)/../../mac/racket -MMD -DWX_CARBON 80LOCALFLAGS = $(LOCALFLAGS_@WXVARIANT@) 81 82GRACKETOBJECTS = grmain.@LTO@ 83 84RACKETDEPS = ../libracket.@LIBSFX@ ../libmzgc.@LIBSFX@ 85 86MRSTATIC = 87MRSTATIC_STUB = 88 89MZEXTRAEXPORT='GCDIR=$(GCDIRECTORY)' 90 91LINKRESULT_wx_xt = gracket@CGC@@EXE_SUFFIX@ 92LINKRESULT_wx_mac = GRacket@CGC@.app/Contents/MacOS/GRacket@CGC@ 93LINKRESULT = $(LINKRESULT_@WXVARIANT@) 94 95SETUP_BOOT = -O "info@compiler/cm" -l- setup @BOOT_MODE@ $(srcdir)/../../setup-go.rkt ../../compiled 96SETUP_BOOT_COLLECTS_PATH = $(SETUP_BOOT) collpath.inc collpath.d "$(srcdir)/../../start/collects-path.rkt" "${srcdir}/../.." 97 98# Incremented each time the binaries change: 99DOWNLOAD_BIN_VERSION = 1 100 101bin: 102 $(MAKE) @MAIN_VARIANT@ 103 1043m: 105 $(MAKE) resources 106 cd gc2; $(MAKE) 3m 107 108cgc: 109 $(MAKE) $(LINKRESULT) 110 111both: 112 $(MAKE) cgc 113 $(MAKE) 3m 114 115gracket@CGC@ : $(RACKETDEPS) $(LIBRKTIO) grmain.@LTO@ $(GRACKETOBJECTS) $(MRSTATIC_STUB) $(GRACKETRESDEP) 116 $(GRACKETLINKER) $(GRACKETLDFLAGS) $(MRSTATIC) -o gracket@CGC@ $(GRACKETOBJECTS) $(GRACKETRES) $(GRACKETLDLIBS) $(MRSTATIC_STUB) 117 @POST_LINKER@ gracket@CGC@ 118 119gres.o : $(srcdir)/../../worksp/gracket/gracket.rc 120 @WINDRES@ -i $(srcdir)/../../worksp/gracket/gracket.rc -o gres.o 121 122resources@NOT_MINGW@ : 123 $(NOOP) 124 125resources@MINGW@ : gres.o 126 $(NOOP) 127 128MRFW = Racket.framework/Versions/$(FWVERSION)/Racket 129MRAPPSKEL = GRacket@CGC@.app/Contents/Info.plist 130 131# Depending on MACLIBRKT_LINK_MODE, use Framework or statically link the framework's code: 132MACLIBRKT_LINK_fw = -F.. -framework Racket 133MACLIBRKT_LINK_static = ../libracket.@LIBSFX@ ../libmzgc.@LIBSFX@ $(LIBRKTIO) $(LDLIBS) 134 135GRacket@CGC@.app/Contents/MacOS/GRacket@CGC@: $(MZFW) $(MRAPPSKEL) grmain.@LTO@ 136 $(GRACKETLINKER) $(GRACKETLDFLAGS) -o GRacket@CGC@.app/Contents/MacOS/GRacket@CGC@ grmain.@LTO@ -Wl,-headerpad_max_install_names $(MACLIBRKT_LINK_@MACLIBRKT_LINK_MODE@) -framework CoreFoundation @PROFFLAGS@ 137 /usr/bin/install_name_tool -change "Racket.framework/Versions/$(FWVERSION)/Racket" "@executable_path/../../../../Racket.framework/Versions/$(FWVERSION)/Racket" GRacket@CGC@.app/Contents/MacOS/GRacket@CGC@ 138 139$(MRAPPSKEL): $(srcdir)/../../mac/osx_appl.rkt $(srcdir)/../../version/racket_version.h $(srcdir)/../../mac/icon/GRacket.icns 140 env BUILDBASE=../.. @RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) $(SETUP_BOOT) $(MRAPPSKEL) mrappskel.d $(srcdir)/../../mac/osx_appl.rkt $(srcdir)/../.. "@CGC@" 141@INCLUDEDEP@ mrappskel.d 142 143ee-app: gracket grmain_ee.@LTO@ 144 if [ "$(EEAPP)" = '' ] ; then echo "ERROR: You must specify EEAPP" ; else $(GRACKETLINKER) $(GRACKETLDFLAGS) $(MRSTATIC) -o $(EEAPP) grmain_ee.@LTO@ $(EEOBJECTS) $(GRACKETLDLIBS) $(MRSTATIC_STUB) ; fi 145 146sunos4-static: dl_stub.@LTO@ 147 $(MAKE) gracket MRSTATIC=-static MRSTATIC_STUB='dl_stub.@LTO@' LDNONSTATICLIBS='' 148 149solaris-static: 150 $(MAKE) gracket MRSTATIC="-Wl,-Bstatic" LDNONSTATICLIBS='-Wl,-Bdynamic -ldl -Wl,-Bstatic' 151 152linux-static: 153 $(MAKE) gracket MRSTATIC=--static LDNONSTATICLIBS='-ldl' 154 155DEF_COLLECTS_DIR = -DINITIAL_COLLECTS_DIRECTORY='"'"`cd $(srcdir)/../../../collects; @PWD@`"'"' 156DEF_CONFIG_DIR = -DINITIAL_CONFIG_DIRECTORY='"'"`cd $(srcdir)/../../..; @PWD@`/etc"'"' 157DEF_C_DIRS = $(DEF_COLLECTS_DIR) $(DEF_CONFIG_DIR) 158 159grmain.@LTO@ : $(srcdir)/grmain.c $(srcdir)/../main.c \ 160 $(srcdir)/../cmdline.inc $(srcdir)/../src/stypes.h \ 161 $(srcdir)/../include/scheme.h 162 $(CC) $(LOCALFLAGS) $(ALL_CFLAGS) $(DEF_C_DIRS) -c $(srcdir)/grmain.c -o grmain.@LTO@ 163 164grmain_ee.@LTO@ : gracket.@LTO@ 165 $(CC) $(LOCALFLAGS) $(ALL_CFLAGS) -DSTANDALONE_WITH_EMBEDDED_EXTENSION $(DEF_C_DIRS) -c $(srcdir)/grmain.cxx -o grmain_ee.@LTO@ 166 167ee-main: 168 $(MAKE) grmain_ee.@LTO@ 169 170clean: 171 rm -f *.@LTO@ *.d core gracket gracket3m 172 rm -f gc2/*.@LTO@ gc2/xsrc/* gc2/macxsrc/* gc2/*.d gc2/*.dd 173 174ICP=@ICP@ 175BUILDINFO="$(DESTDIR)$(libpltdir)/buildinfo" 176 177# Prefix might be relative to srcdir, or it might be absolute, so we 178# have to go up and install things from there. 179 180install: 181 $(MAKE) install-@MAIN_VARIANT@ 182 183install-3m: 184 $(MAKE) install-@WXVARIANT@ 185 $(MAKE) install-@WXVARIANT@-3m 186 $(MAKE) install-@WXVARIANT@-3m-final 187 188install-cgc: 189 $(MAKE) install-@WXVARIANT@ 190 $(MAKE) install-@WXVARIANT@-cgc 191 $(MAKE) install-@WXVARIANT@-cgc-final 192 193install-both: 194 $(MAKE) install-@WXVARIANT@ 195 $(MAKE) install-@WXVARIANT@-3m 196 $(MAKE) install-@WXVARIANT@-cgc 197 $(MAKE) install-@WXVARIANT@-@MAIN_VARIANT@-final 198 199install-post-collects: 200 $(MAKE) install-@WXVARIANT@-post-collects 201 202install-common: 203 $(NOOP) 204 205INSTALL_SETUP_BOOT = $(SETUP_BOOT) dummy_install dummy_install.d 206 207# X11 ---------------------------------------- 208 209install-wx_xt: 210 $(MAKE) install-common 211 cd ..; rm -f "$(DESTDIR)$(libpltdir)/gracket@CGC_INSTALLED@" 212 cd ..; rm -f "$(DESTDIR)$(libpltdir)/gracket@MMM_INSTALLED@" 213 cd ..; echo 'MROPTIONS=@MROPTIONS@' >> $(BUILDINFO) 214 cd ..; echo "MRLIBS=$(GUILIBS_@WXVARIANT@)" >> $(BUILDINFO) 215 cd ..; echo "MRLDFLAGS=$(GRACKETLDFLAGS)" >> $(BUILDINFO) 216 cd ..; mkdir -p "$(DESTDIR)$(libdir)"; 217 218install-no-lib-cgc-wx_xt: 219 echo "no dynamic libs" 220 221install-lib-cgc-wx_xt: 222 $(NOOP) 223 224GRACKET_NAME@NOT_MINGW@ = gracket 225GRACKET_NAME@MINGW@ = GRacket 226 227install-wx_xt-cgc: 228 $(MAKE) @MRLIBINSTALL@-cgc-wx_xt 229 cd ..; $(ICP) gracket/gracket@CGC@@EXE_SUFFIX@ "$(DESTDIR)$(libpltdir)/$(GRACKET_NAME)@CGC_INSTALLED@@EXE_SUFFIX@" 230 $(STRIP_SIGNATURE) "$(DESTDIR)$(libpltdir)/$(GRACKET_NAME)@CGC_INSTALLED@@EXE_SUFFIX@" 231 cd ..; @STRIP_DEBUG@ "$(DESTDIR)$(libpltdir)/$(GRACKET_NAME)@CGC_INSTALLED@@EXE_SUFFIX@" 232 @RUN_RACKET_CGC@ $(SETUP_BOOT_COLLECTS_PATH) @DIRCVTPRE@"$(DESTDIR)$(libpltdir)/$(GRACKET_NAME)@CGC_INSTALLED@@EXE_SUFFIX@"@DIRCVTPOST@ @GUI_COLLECTS_PATH@ @GUI_CONFIG_PATH@ 233 $(RESTORE_SIGNATURE) "$(DESTDIR)$(libpltdir)/$(GRACKET_NAME)@CGC_INSTALLED@@EXE_SUFFIX@" 234 235install-wx_xt-cgc-final: 236 $(NOOP) 237 238install-no-lib-3m-wx_xt: 239 echo "no dynamic libs" 240 241install-lib-3m-wx_xt: 242 $(NOOP) 243 244install-wx_xt-3m: 245 $(MAKE) @MRLIBINSTALL@-3m-wx_xt 246 cd ..; $(ICP) gracket/gracket@MMM@@EXE_SUFFIX@ "$(DESTDIR)$(libpltdir)/$(GRACKET_NAME)@MMM_INSTALLED@@EXE_SUFFIX@" 247 $(STRIP_SIGNATURE) "$(DESTDIR)$(libpltdir)/$(GRACKET_NAME)@MMM_INSTALLED@@EXE_SUFFIX@" 248 cd ..; @STRIP_DEBUG@ "$(DESTDIR)$(libpltdir)/$(GRACKET_NAME)@MMM_INSTALLED@@EXE_SUFFIX@" 249 @RUN_RACKET_MMM@ $(SETUP_BOOT_COLLECTS_PATH) @DIRCVTPRE@"$(DESTDIR)$(libpltdir)/$(GRACKET_NAME)@MMM_INSTALLED@@EXE_SUFFIX@"@DIRCVTPOST@ @GUI_COLLECTS_PATH@ @GUI_CONFIG_PATH@ 250 $(RESTORE_SIGNATURE) "$(DESTDIR)$(libpltdir)/$(GRACKET_NAME)@MMM_INSTALLED@@EXE_SUFFIX@" 251 252install-wx_xt-3m-final: 253 $(NOOP) 254 255install-wx_xt-post-collects: 256 $(NOOP) 257 258# Mac OS X ---------------------------------------- 259 260FRAMEWORK_REL_PREFIX="@executable_path/../../../" 261FRAMEWORK_ABS_PREFIX = "$(libpltdir)/" 262 263install-wx_mac: 264 $(MAKE) install-common 265 cd ..; rm -rf $(DESTDIR)"$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app" 266 cd ..; rm -rf $(DESTDIR)"$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app" 267 268install-wx_mac-cgc: 269 cd ..; $(ICP) -r gracket/GRacket@CGC@.app $(DESTDIR)"$(libpltdir)/GRacket@CGC_CAP_INSTALLED@.app" 270 @RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) $(INSTALL_SETUP_BOOT) "$(srcdir)/../../mac/rename-app.rkt" $(DESTDIR)"$(libpltdir)/GRacket@CGC_CAP_INSTALLED@.app" "GRacket@CGC@" "GRacket@CGC_CAP_INSTALLED@" 271 /usr/bin/install_name_tool -change "@executable_path/../../../../Racket.framework/Versions/$(FWVERSION)/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)/Racket" $(DESTDIR)"$(libpltdir)/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@" 272 @RUN_RACKET_CGC@ $(SETUP_BOOT_COLLECTS_PATH) $(DESTDIR)"$(libpltdir)/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@" @GR_APP_COLLECTS_PATH@ @GR_APP_CONFIG_PATH@ 273 @STRIP_DEBUG@ $(DESTDIR)"$(libpltdir)/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@" 274 275install-wx_mac-cgc-final: 276 $(NOOP) 277 278install-wx_mac-3m: 279 cd ..; $(ICP) -r "gracket/GRacket@MMM@.app" $(DESTDIR)"$(libpltdir)/GRacket@MMM_CAP_INSTALLED@.app" 280 @RUN_RACKET_MMM@ $(SELF_RACKET_FLAGS) $(INSTALL_SETUP_BOOT) "$(srcdir)/../../mac/rename-app.rkt" $(DESTDIR)"$(libpltdir)/GRacket@MMM_CAP_INSTALLED@.app" "GRacket@MMM@" "GRacket@MMM_CAP_INSTALLED@" 281 /usr/bin/install_name_tool -change "@executable_path/../../../../Racket.framework/Versions/$(FWVERSION)_3m/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)_3m/Racket" $(DESTDIR)"$(libpltdir)/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@" 282 @RUN_RACKET_MMM@ $(SETUP_BOOT_COLLECTS_PATH) $(DESTDIR)"$(libpltdir)/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@" @GR_APP_COLLECTS_PATH@ @GR_APP_CONFIG_PATH@ 283 @STRIP_DEBUG@ $(DESTDIR)"$(libpltdir)/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@" 284 285install-wx_mac-3m-final: 286 $(NOOP) 287 288install-wx_mac-post-collects: 289 cd ..; rm -rf $(DESTDIR)$(libpltdir)/Starter.app 290 cd ..; $(ICP) -r gracket/Starter.app $(DESTDIR)$(libpltdir)/. 291 292 293@INCLUDEDEP@ grmain.d 294