1# 2# Makefile for racket 3# 4 5PACKAGE = racket 6 7srcdir = @srcdir@ 8prefix = @prefix@ 9exec_prefix = @exec_prefix@ 10datarootdir = @datarootdir@ 11bindir = @bindir@ 12libdir = @libdir@ 13includepltdir = @includepltdir@ 14libpltdir = @libpltdir@ 15libpltdir_rel = @libpltdir_rel@ 16etcpltdir = @etcpltdir@ 17sharepltdir = @sharepltdir@ 18configdir = @etcpltdir@ 19collectsdir = @collectsdir@ 20builddir = @builddir@ 21 22# for version.mak: 23mainsrcdir = @srcdir@/.. 24@INCLUDEDEP@ @srcdir@/../version/version.mak 25 26NOOP = : 27 28CC = @CC@ 29CPP = @CPP@ 30 31# Although CFLAGS is defined via configure, the intent is that 32# CFLAGS and CPPFLAGS can be adjusted at `make' time. 33CFLAGS = @CFLAGS@ @COMPFLAGS@ @PROFFLAGS@ 34CPPFLAGS = @PREFLAGS@ 35 36AR = @AR@ 37ARFLAGS = @ARFLAGS@ 38RANLIB = @RANLIB@ 39 40STRIP_DEBUG = @STRIP_DEBUG@ 41STRIP_LIB_DEBUG = @STRIP_LIB_DEBUG@ 42 43STRIP_SIGNATURE = @STRIP_SIGNATURE@ 44RESTORE_SIGNATURE = @RESTORE_SIGNATURE@ "${srcdir}/../mac/entitlements.plist" 45 46ARLIBFLAGS = @LDFLAGS@ @LIBS@ 47 48RACKET = racket 49 50# See ../../Makefile about RUN_RACKET_<X>, which 51# typically redirects to RUN_THIS_RACKET_<X>: 52RUN_THIS_RACKET_CGC = ./racket@CGC@ 53RUN_THIS_RACKET_MMM = ./racket@MMM@ 54 55SETUP_BOOT = -O "info@compiler/cm" -l- setup @BOOT_MODE@ $(srcdir)/../setup-go.rkt ../compiled 56SETUP_BOOT_COLLECTS_PATH = $(SETUP_BOOT) collpath.inc collpath.d "$(srcdir)/../start/collects-path.rkt" "${srcdir}/.." 57 58MZSRC = $(srcdir)/src 59 60FOREIGN_DIR = foreign 61FOREIGN_OBJ = $(FOREIGN_DIR)/foreign.@LTO@ 62LIBFFI_OBJ_ON = $(FOREIGN_DIR)/libffi/src/*.@LTO@ $(FOREIGN_DIR)/libffi/src/*/*.@LTO@ 63LIBFFI_OBJ_OFF = 64FOREIGN_OBJS = $(FOREIGN_OBJ) $(LIBFFI_OBJ_@OWN_LIBFFI@) 65LIBFFI_LIB_ON = foreign/libffi/libffi@FOREIGN_CONVENIENCE@.la 66LIBFFI_LIB_OFF = 67FOREIGN_LIB = $(FOREIGN_OBJ) $(LIBFFI_LIB_@OWN_LIBFFI@) 68FOREIGN_STUB_LIB = $(FOREIGN_OBJ) 69FOREIGN_OBJSLIB = @FOREIGN_OBJSLIB@ 70# Dependency always uses FOREIGN_LIB, but linker uses FOREIGN_OBJSLIB. The 71# FOREIGN_OBJSLIB expansion has too many "*"s to be a valid make target, 72# while FOREIGN_LIB is not always acceptable to the linker. 73# The foreign build always uses libtool, so that's why we use .la instead of @LTA@ 74# in FOREIGN_LIB. 75 76# About EXE_SUFFIX: 77# Cygwin offers the illusion that binaries have no ".exe" suffix by 78# having the file-open syscall open an ".exe" file for reading when 79# (1) the given filename has no suffix, and (2) there's not a suffixless 80# file present. However, Cygwin doesn't do that when opening a file for 81# output, even when the output mode is 'update. So we need to explicitly 82# add EXE_SUFFIX in a few places. 83 84################################################################################ 85 86bin: 87 $(MAKE) @MZBINTARGET@ 88 89normal-bin: 90 $(MAKE) @MAIN_VARIANT@-with-gracket 91 92common: 93 $(MAKE) g-c 94 $(MAKE) @FOREIGNTARGET@ 95 $(MAKE) rktio-lib 96 97cgc: 98 $(MAKE) cgc-core 99 $(MAKE) sysinfer@CGC@ 100 101cgc-core: 102 $(MAKE) common 103 $(MAKE) dynlib 104 $(MAKE) mzlibrary 105 $(MAKE) racket@CGC@@EXE_SUFFIX@ 106 $(MAKE) cstartup 107 $(MAKE) mzlibrary 108 $(MAKE) racket@CGC@@EXE_SUFFIX@ 109 $(MAKE) mzcom@CGC@@EXE_SUFFIX@ 110 1113m: 112 $(MAKE) @CGC_IF_NEEDED_FOR_MMM@ 113 $(MAKE) cstartup 114 cd gc2; $(MAKE) all 115 cd dynsrc; $(MAKE) dynlib3m 116 cd gc2; $(MAKE) ../racket@MMM@@EXE_SUFFIX@ 117 cd gc2; $(MAKE) ../mzcom@MMM@@EXE_SUFFIX@ 118 $(MAKE) sysinfer@MMM@ 119 1203m-with-gracket: 121 $(MAKE) 3m 122 $(MAKE) @MAKE_GRACKET@-3m 123 124gracket-3m: 125 cd gracket && $(MAKE) 3m 126 127no-3m: 128 $(NOOP) 129 130cgc-with-gracket: 131 $(MAKE) cgc 132 $(MAKE) @MAKE_GRACKET@-cgc 133 134gracket-cgc: 135 cd gracket && $(MAKE) cgc 136 137no-cgc: 138 $(NOOP) 139 140both: 141 $(MAKE) cgc-core 142 $(MAKE) 3m 143 144racketlib: 145 $(MAKE) g-c 146 $(MAKE) @FOREIGNTARGET@ 147 $(MAKE) mzlibrary 148 149dynlib: 150 cd dynsrc; $(MAKE) dynlib 151 152dynexample: 153 $(MAKE) dynlib 154 cd dynsrc; $(MAKE) dynexample 155 156oe: 157 $(MAKE) dynlib 158 cd dynsrc; $(MAKE) oe 159 160g-c: 161 cd @GCDIR@; $(MAKE) ../libmzgc.@LIBSFX@ 162 163exports: 164 cd src; $(MAKE) mzheaders 165 166sproc-extra-lib: 167 cd @GCDIR@; $(MAKE) sproc.@LTO@ 168 $(MAKE) sproc.@LTO@ 169 170gc.@LIBSFX@: 171 $(AR) $(ARFLAGS) @GCDIR@/gc.@LIBSFX@ @GCDIR@/*.@LTO@ 172 173# Compilation of the foreign libraries (this compiles all of them) 174foreign-stuff: 175 cd $(FOREIGN_DIR); $(MAKE) all 176 177foreign-stub: 178 cd $(FOREIGN_DIR); $(MAKE) stub 179 180rktio-lib: 181 cd rktio; $(MAKE) CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" 182 183mzlibrary: 184 cd src; $(MAKE) all 185 $(MAKE) libracket.@LIBSFX@ 186 187# For no-cgc-needed, we don't need to build the gc or link racketcgc, 188# but gc2 depends on a few plain-src objects 189no-cgc-needed: 190 cd src; $(MAKE) plain-objs 191 $(MAKE) @FOREIGNTARGET@ 192 $(MAKE) rktio-lib 193 $(MAKE) main.@LTO@ 194 $(MAKE) mingw-other 195 cd dynsrc; $(MAKE) ../starter@EXE_SUFFIX@ 196 197ALL_CPPFLAGS = -I$(builddir) -I$(srcdir)/include -I$(srcdir)/src -I$(srcdir)/../version $(CPPFLAGS) @OPTIONS@ @GC2OPTIONS@ @MZOPTIONS@ 198MKSYSTEM_ARGS = -cqu $(srcdir)/mksystem.rkt system.rktd "$(CPP) $(ALL_CPPFLAGS) $(srcdir)/src/systype.c" "@MMM_INSTALLED@" @CROSS_COMPILE_TARGET_KIND@ 199 200sysinfer@CGC@: 201 @RUN_RACKET_CGC@ $(MKSYSTEM_ARGS) "@RUN_RACKET_CGC@" "$(RUN_THIS_RACKET_CGC)" 202 203sysinfer@MMM@: 204 @RUN_RACKET_MMM@ $(MKSYSTEM_ARGS) "@RUN_RACKET_MMM@" "$(RUN_THIS_RACKET_MMM)" 205 206 207FOREIGN_USED_LIB = $(FOREIGN_OBJ) $(FOREIGN_LIB) 208FOREIGN_USED_OBJSLIB = $(FOREIGN_OBJSLIB) 209FOREIGN_NOT_USED_LIB = $(FOREIGN_OBJ) 210FOREIGN_NOT_USED_OBJSLIB = $(FOREIGN_OBJ) 211 212LIBRKTIO = rktio/librktio.@LTA@ 213LIBRKTIO_FOR_DLL_la = $(LIBRKTIO) 214LIBRKTIO_FOR_DLL_a = 215LIBRKTIO_FOR_LIB_la = 216LIBRKTIO_FOR_LIB_a = $(LIBRKTIO) 217LIBRKTIO_FOR_DLL = $(LIBRKTIO_FOR_DLL_@LIBSFX@) 218LIBRKTIO_FOR_LIB = $(LIBRKTIO_FOR_LIB_@LIBSFX@) 219 220libracket.@LIBSFX@: src/*.@LTO@ $(@FOREIGN_IF_USED@_LIB) $(LIBRKTIO_FOR_DLL) 221 $(AR) $(ARFLAGS) libracket.@LIBSFX@ src/*.@LTO@ $(@FOREIGN_IF_USED@_OBJSLIB) $(LIBRKTIO_FOR_DLL) @LIBRACKET_DEP@ 222 223# Irix sproc, only 224sproc.@LTO@: @GCDIR@/sproc.@LTO@ 225 cp @GCDIR@/sproc.@LTO@ sproc.@LTO@ 226 227# Unix ---------------------------------------- 228 229racket@CGC@@NOT_OSX@@NOT_MINGW@: libracket.@LIBSFX@ libmzgc.@LIBSFX@ main.@LTO@ $(LIBRKTIO_FOR_LIB) $(SPECIALIZINGOBJECTS) 230 @MZLINKER@ -o racket@CGC@ main.@LTO@ $(SPECIALIZINGOBJECTS) libracket.@LIBSFX@ libmzgc.@LIBSFX@ $(LIBRKTIO_FOR_LIB) @LDFLAGS@ @LIBS@ 231 @POST_LINKER@ racket@CGC@ 232 233mzcom@CGC@@NOT_MINGW@: 234 $(NOOP) 235 236# Mac OS ---------------------------------------- 237 238MZFW = Racket.framework/Versions/$(FWVERSION)/Racket 239 240MACLIBRKT_LIBS = $(SPECIALIZINGOBJECTS) libracket.@LIBSFX@ libmzgc.@LIBSFX@ $(LIBRKTIO) -framework CoreFoundation 241 242$(MZFW): libracket.@LIBSFX@ libmzgc.@LIBSFX@ $(SPECIALIZINGOBJECTS) $(LIBRKTIO) 243 mkdir -p Racket.framework/Versions/$(FWVERSION) 244 @MZLINKER@ -o $(MZFW) @LDFLAGS@ -dynamiclib -all_load $(MACLIBRKT_LIBS) @LIBS@ 245 rm -f Racket.framework/Racket 246 ln -s Versions/$(FWVERSION)/Racket Racket.framework/Racket 247 248# Depending on MACLIBRKT_LINK_MODE, use Framework or statically link the framework's code: 249MACLIBRKT_LINK_fw = -F. -framework Racket 250MACLIBRKT_LINK_static = $(MACLIBRKT_LIBS) 251 252racket@CGC@@OSX@: $(MZFW) main.@LTO@ 253 @MZLINKER@ -o racket@CGC@ @PROFFLAGS@ @LDFLAGS@ main.@LTO@ -Wl,-headerpad_max_install_names $(MACLIBRKT_LINK_@MACLIBRKT_LINK_MODE@) @LIBS@ 254 /usr/bin/install_name_tool -change "Racket.framework/Versions/$(FWVERSION)/Racket" "@executable_path/Racket.framework/Versions/$(FWVERSION)/Racket" "racket@CGC@" 255 256# mingw ---------------------------------------- 257 258lib/libmzgcxxxxxxx.dll: libmzgc.@LIBSFX@ 259 mkdir -p lib 260 @MZLINKER@ -shared -o lib/libmzgcxxxxxxx.dll -Wl,--output-def -Wl,libmzgc.def -Wl,--whole-archive libmzgc.@LIBSFX@ -Wl,--no-whole-archive @LDFLAGS@ -static-libgcc @LIBS@ 261 262mzsj86g.o: $(srcdir)/src/mzsj86g.S 263 $(CC) -c -o mzsj86g.o $(srcdir)/src/mzsj86g.S 264 265lib/libracketxxxxxxx.dll: lib/libmzgcxxxxxxx.dll libracket.@LIBSFX@ mzsj86g.o $(LIBRKTIO) 266 mkdir -p lib 267 @MZLINKER@ -shared -o lib/libracketxxxxxxx.dll mzsj86g.o -Wl,--output-def -Wl,libracket.def -Wl,--whole-archive libracket.@LIBSFX@ -Wl,--no-whole-archive $(LIBRKTIO) @LDFLAGS@ -lshell32 -luser32 -lws2_32 -lwinmm lib/libmzgcxxxxxxx.dll -static-libgcc @LIBS@ 268 269libracket.dll.a: lib/libracketxxxxxxx.dll 270 @DLLTOOL@ --def libracket.def -D libracketxxxxxxx.dll --output-exp libracketxxxxxxx.exp --output-lib libracketxxxxxxx.lib --output-delaylib libracket.dll.a 271 272libmzgc.dll.a: lib/libmzgcxxxxxxx.dll 273 @DLLTOOL@ --def libmzgc.def -D libmzgcxxxxxxx.dll --output-lib libmzgcxxxxxxx.lib --output-exp libmzgcxxxxxxx.lib --output-delaylib libmzgc.dll.a 274 275rres.o: $(srcdir)/../worksp/racket/racket.rc 276 @WINDRES@ -i $(srcdir)/../worksp/racket/racket.rc -o rres.o 277 278MW_RACKET_LIBS = libracket.dll.a libmzgc.dll.a @LDFLAGS@ @LIBS@ -ldelayimp -static-libgcc 279 280racket@CGC@@EXE_SUFFIX@@MINGW@: libracket.dll.a libmzgc.dll.a main.@LTO@ MemoryModule.@LTO@ $(SPECIALIZINGOBJECTS) rres.o 281 @MZLINKER@ -o racket@CGC@@EXE_SUFFIX@ main.@LTO@ MemoryModule.@LTO@ rres.o $(SPECIALIZINGOBJECTS) $(MW_RACKET_LIBS) 282 283MemoryModule.@LTO@: $(srcdir)/../start/MemoryModule.c $(srcdir)/../start/MemoryModule.h 284 $(CC) -c -I $(srcdir)/../start -o MemoryModule.@LTO@ $(srcdir)/../start/MemoryModule.c 285 286mingw-other@MINGW@: mzsj86g.o MemoryModule.@LTO@ rres.o comres.o com_glue.@LTO@ 287 $(NOOP) 288 289mingw-other@NOT_MINGW@: 290 $(NOOP) 291 292mzcom@CGC@@EXE_SUFFIX@@MINGW@: libracket.dll.a libmzgc.dll.a mzcom.@LTO@ mzobj.@LTO@ com_glue.@LTO@ $(SPECIALIZINGOBJECTS) comres.o 293 @MZLINKER@ -mwindows -o mzcom@CGC@@EXE_SUFFIX@ mzcom.@LTO@ mzobj.@LTO@ com_glue.@LTO@ comres.o $(SPECIALIZINGOBJECTS) -lole32 -loleaut32 -luuid $(MW_RACKET_LIBS) 294 295comres.o : $(srcdir)/../worksp/mzcom/mzcom.rc $(srcdir)/../mzcom/prebuilt/MzCOM.tlb 296 @WINDRES@ -I $(srcdir)/../mzcom -I $(srcdir)/../mzcom/prebuilt -i $(srcdir)/../worksp/mzcom/mzcom.rc -o comres.o 297 298# ---------------------------------------- 299 300DEF_COLLECTS_DIR = -DINITIAL_COLLECTS_DIRECTORY='"'"`cd $(srcdir)/../../collects; @PWD@`"'"' 301DEF_CONFIG_DIR = -DINITIAL_CONFIG_DIRECTORY='"'"`cd $(srcdir)/../..; @PWD@`/etc"'"' 302DEF_C_DIRS = $(DEF_COLLECTS_DIR) $(DEF_CONFIG_DIR) 303 304MAIN_HEADER_DEPS = $(srcdir)/include/scheme.h $(srcdir)/include/schthread.h $(srcdir)/sconfig.h \ 305 $(srcdir)/src/stypes.h $(srcdir)/cmdline.inc $(srcdir)/../start/parse_cmdl.inc \ 306 $(srcdir)/../start/cmdl_to_argv.inc \ 307 $(srcdir)/../start/config.inc $(srcdir)/../start/self_exe.inc $(srcdir)/../start/delayed.inc \ 308 $(srcdir)/../start/embedded_dll.inc 309 310MAIN_INCLUDES = -I$(builddir) -I$(srcdir)/include -I$(srcdir)/../version 311 312main.@LTO@: $(srcdir)/main.c $(MAIN_HEADER_DEPS) 313 $(CC) $(MAIN_INCLUDES) $(CFLAGS) $(CPPFLAGS) @OPTIONS@ @MZOPTIONS@ $(DEF_C_DIRS) -c $(srcdir)/main.c -o main.@LTO@ 314 315main_ee.@LTO@: main.@LTO@ 316 $(CC) $(MAIN_INCLUDES) $(CFLAGS) $(CPPFLAGS) @OPTIONS@ @MZOPTIONS@ $(DEF_C_DIRS) -DSTANDALONE_WITH_EMBEDDED_EXTENSION -c $(srcdir)/main.c -o main_ee.@LTO@ 317 318ee-main: 319 $(MAKE) main_ee.@LTO@ 320 321ee-app: $(RACKET) main_ee.@LTO@ 322 if [ "$(EEAPP)" = '' ] ; then echo "ERROR: You must specify EEAPP" ; else $(CC) $(MAIN_CFLAGS_NODBG) -o $(EEAPP) main_ee.@LTO@ $(EEOBJECTS) $(SPECIALIZINGOBJECTS) libracket.@LIBSFX@ libmzgc.@LIBSFX@ @LIBS@ ; fi 323 324MZCOM_DEPS = $(MAIN_HEADER_DEPS) $(srcdir)/../mzcom/com_glue.h $(srcdir)/../mzcom/resource.h 325 326mzcom.@LTO@: $(srcdir)/../mzcom/mzcom.cxx $(MZCOM_DEPS) 327 $(CC) -fno-exceptions $(MAIN_INCLUDES) $(CFLAGS) $(CPPFLAGS) @OPTIONS@ @MZOPTIONS@ $(DEF_C_DIRS) -c $(srcdir)/../mzcom/mzcom.cxx -o mzcom.@LTO@ 328 329mzobj.@LTO@: $(srcdir)/../mzcom/mzobj.cxx $(MZCOM_DEPS) 330 $(CC) -fno-exceptions $(MAIN_INCLUDES) $(CFLAGS) $(CPPFLAGS) @OPTIONS@ @MZOPTIONS@ -c $(srcdir)/../mzcom/mzobj.cxx -o mzobj.@LTO@ 331 332com_glue.@LTO@: $(srcdir)/../mzcom/com_glue.c $(MZCOM_DEPS) 333 $(CC) $(MAIN_INCLUDES) $(CFLAGS) $(CPPFLAGS) @OPTIONS@ @MZOPTIONS@ -c $(srcdir)/../mzcom/com_glue.c -o com_glue.@LTO@ 334 335exn: 336 $(RACKET) -um $(srcdir)/src/makeexn > $(srcdir)/src/schexn.h 337 $(RACKET) -um $(srcdir)/src/makeexn kernstruct $(collectsdir)/racket/private/kernstruct.rkt 338 339CSTARTUPDEST = cstartup.inc 340 341MZCONFIGDIR@NOT_MINGW@ = . 342MZCONFIGDIR@MINGW@ = "$(srcdir)/../worksp" 343 344headers: 345 @RUN_RACKET_CGC@ -cqu $(srcdir)/mkincludes.rkt @DIRCVTPRE@"$(DESTDIR)$(includepltdir)"@DIRCVTPOST@ "$(srcdir)" $(MZCONFIGDIR) 346 cd ..; cp bc/system.rktd "$(DESTDIR)$(libpltdir)/system.rktd" 347 348# The `cstartup` target may update "cstartup.inc", either replacing a 349# stub "cstartup.inc" that redirects to "startup.inc" or rebuilding 350# because "startup.inc" or "racket_version.h" changed; so, during a CGC 351# build, we try again after building this target to potentially update 352# the CGC build to a compiled-startup build. A particular `cstartup` 353# target variant is selected by the `configure` script based on whether 354# `--{en,dis}able-cify` is specified; for example `STARTUP_AS_AUTO` 355# with be the empty string is neither is specified, in which case 356# of the the other targets is selected by a recursive `$(MAKE)`. 357 358cstartup@STARTUP_AS_AUTO@: 359 $(MAKE) cstartup_`@RUN_RACKET_CGC@ -cu $(srcdir)/src/startup-select.rkt` 360 361# For compiling the startup code to bytecode 362cstartup@STARTUP_AS_BYTECODE@: 363 @RUN_RACKET_CGC@ -cu $(srcdir)/src/compile-startup.rkt $(CSTARTUPDEST) cstartup.zo $(srcdir)/src/startup.inc $(srcdir)/../version/racket_version.h 364 365# For compiling the startup code to C 366cstartup@STARTUP_AS_C@: 367 @RUN_RACKET_CGC@ -cu $(srcdir)/src/cify-check.rkt $(CSTARTUPDEST) 368 $(MAKE) cstartup.inc 369 370cstartup_: 371 echo "Bad startup choice, probably an error running startup-select.rkt" 372 exit 1 373 374# Running "cify-startup.rkt" through "$(SETUP_BOOT)" generates more 375# dependencies in "cstartup.d" for `$(CSTARTUPDEST)` 376$(CSTARTUPDEST): $(srcdir)/src/startup.inc $(srcdir)/../version/racket_version.h 377 @RUN_RACKET_CGC@ $(SETUP_BOOT) cstartup.inc cstartup.d $(srcdir)/src/cify-startup.rkt $(srcdir)/src/startup.inc $(srcdir)/../version/racket_version.h 378@INCLUDEDEP@ cstartup.d 379 380mark: 381 racket -cu $(srcdir)/src/mkmark.rkt $(srcdir)/src < $(srcdir)/src/mzmarksrc.c 382 383clean@NOT_OSX@: 384 /bin/rm -rf tmp[123456789] tests/tmp[123456789] tests/sub[123] 385 /bin/rm -f tests/*~ 386 /bin/rm -f *.@LTO@ core 387 /bin/rm -f mzdyn.o libmzgc.@LIBSFX@ libracket.@LIBSFX@ libracket3m.@LIBSFX@ libdl.a racket racket.multiboot 388 /bin/rm -f include/macosxpre 389 /bin/rm -f include/macosxpre.p 390 /bin/rm -f $(CSTARTUPDEST) 391 cd gc2; $(MAKE) clean 392 cd sgc; $(MAKE) clean 393 cd src; $(MAKE) clean 394 cd dynsrc; $(MAKE) clean 395 if [ -d ../foreign ] ; then cd ../foreign ; $(MAKE) clean ; fi 396 397clean@OSX@: 398 rm -rf Racket.framework 399 $(MAKE) clean@NOT_OSX@ 400 401BUILDINFO=$(DESTDIR)$(libpltdir)/buildinfo 402ICP=@ICP@ 403ICP_LIB=@ICP_LIB@ 404ICP_STATIC_LIB=@ICP_STATIC_LIB@ 405 406install: 407 $(MAKE) install-@MAIN_VARIANT@ 408 409install-3m: 410 $(MAKE) headers 411 $(MAKE) @MZINSTALLTARGET@ 412 $(MAKE) @MZINSTALLTARGET@-3m 413 $(MAKE) @MZINSTALLTARGET@-3m-final 414 $(MAKE) install-@MAKE_GRACKET@-3m 415 416install-cgc: 417 $(MAKE) headers 418 $(MAKE) @MZINSTALLTARGET@ 419 $(MAKE) @MZINSTALLTARGET@-cgc 420 $(MAKE) @MZINSTALLTARGET@-cgc-final 421 $(MAKE) install-@MAKE_GRACKET@-cgc 422 423install-both: 424 $(MAKE) headers 425 $(MAKE) @MZINSTALLTARGET@ 426 $(MAKE) @MZINSTALLTARGET@-3m 427 $(MAKE) @MZINSTALLTARGET@-cgc 428 $(MAKE) @MZINSTALLTARGET@-@MAIN_VARIANT@-final 429 $(MAKE) install-@MAKE_GRACKET@-3m 430 $(MAKE) install-@MAKE_GRACKET@-cgc 431 432install-gracket-3m: 433 cd gracket; $(MAKE) install-3m 434 435install-gracket-cgc: 436 cd gracket; $(MAKE) install-cgc 437 438install-no-3m: 439 $(NOOP) 440 441install-no-cgc: 442 $(NOOP) 443 444install-lib-finish: 445 if [ "$(DESTDIR)" = "" ]; then \ 446 @LIBFINISH@ "$(LIB_FINISH_DIR)"; \ 447 fi 448 449install-post-collects: 450 $(MAKE) install-@MAKE_GRACKET@-post-collects 451 452install-gracket-post-collects: 453 cd gracket && $(MAKE) install-post-collects 454 455install-no-post-collects: 456 $(NOOP) 457 458# Intended for configuration by an external makefile that drives this one: 459SELF_ROOT_CONFIG_FLAG = -Z 460SELF_ROOT_CONFIG_DIR = ../../../../build/config 461SELF_ROOT_CONFIG = $(SELF_ROOT_CONFIG_FLAG) $(SELF_ROOT_CONFIG_DIR) 462 463INST_CONFIG = -X @DIRCVTPRE@"$(DESTDIR)$(collectsdir)"@DIRCVTPOST@ -G @DIRCVTPRE@"$(DESTDIR)$(configdir)"@DIRCVTPOST@ 464SETUP_RACKET_FLAGS = $(INST_CONFIG) $(SETUP_MACHINE_FLAGS) $(SELF_ROOT_CONFIG) @INSTALL_SETUP_RACKET_FLAGS@ 465SETUP_SETUP_FLAGS = @INSTALL_SETUP_FLAGS@ $(PLT_SETUP_OPTIONS) $(PLT_ISO) 466SETUP_ARGS = $(SETUP_RACKET_FLAGS) -N "raco" -l- setup $(SETUP_SETUP_FLAGS) 467 468install-setup-3m: 469 @RUN_RACKET_MMM@ $(SETUP_ARGS) 470 471install-setup-cgc: 472 @RUN_RACKET_CGC@ $(SETUP_ARGS) 473 474# Unix install ---------------------------------------- 475 476# Prefix might be relative to srcdir, or it might be absolute, so we 477# have to go up and install things from there. 478 479unix-install: 480 cd ..; rm -f "$(DESTDIR)@MZINSTALLBINDIR@/racket@CGC_INSTALLED@" 481 cd ..; rm -f "$(DESTDIR)@MZINSTALLBINDIR@/racket@MMM_INSTALLED@" 482 cd ..; cp bc/starter@EXE_SUFFIX@ "$(DESTDIR)$(libpltdir)/starter@EXE_SUFFIX@" 483 cp $(srcdir)/../start/starter-sh . 484 cd ..; cp bc/starter-sh "$(DESTDIR)$(libpltdir)/starter-sh" 485 cd ..; $(STRIP_SIGNATURE) "$(DESTDIR)$(libpltdir)/starter@EXE_SUFFIX@" 486 cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(libpltdir)/starter@EXE_SUFFIX@" 487 @RUN_RACKET_CGC@ $(SETUP_BOOT_COLLECTS_PATH) "$(DESTDIR)$(libpltdir)/starter@EXE_SUFFIX@" $(DESTDIR)@COLLECTS_PATH@ $(DESTDIR)@CONFIG_PATH@ 488 cd ..; echo 'CC=@CC@' > "$(BUILDINFO)" 489 cd ..; echo 'CFLAGS=$(CFLAGS) $(CPPFLAGS)' >> "$(BUILDINFO)" 490 cd ..; echo 'OPTIONS=@OPTIONS@' >> "$(BUILDINFO)" 491 cd ..; echo 'MZOPTIONS=@MZOPTIONS@' >> "$(BUILDINFO)" 492 cd ..; echo "LDFLAGS=@LDFLAGS@" >> "$(BUILDINFO)" 493 cd ..; echo 'LIBS=@LIBS@' >> "$(BUILDINFO)" 494 495unix-install-cgc: 496 $(MAKE) unix-@INSTALL_LIBS_ENABLE@-libs-cgc 497 cd ..; $(ICP) bc/racket@CGC@ "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@" 498 cd ..; $(STRIP_SIGNATURE) "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@" 499 cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@" 500 cd ..; cp bc/mzdyn.o "$(DESTDIR)$(libpltdir)/mzdyn.o" 501 @RUN_RACKET_CGC@ $(SETUP_BOOT_COLLECTS_PATH) "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@@EXE_SUFFIX@" $(DESTDIR)@COLLECTS_PATH@ $(DESTDIR)@CONFIG_PATH@ 502 $(RESTORE_SIGNATURE) "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@" 503 504unix-install-libs-cgc: 505 cd ..; $(ICP_LIB) bc/libmzgc.@LIBSFX@ "$(DESTDIR)$(libdir)/libmzgc.@LIBSFX@" 506 cd ..; $(ICP_LIB) bc/libracket.@LIBSFX@ "$(DESTDIR)$(libdir)/libracket.@LIBSFX@" 507 cd ..; $(ICP_STATIC_LIB) bc/rktio/librktio.@LIBSFX@ "$(DESTDIR)$(libdir)/librktio.@LIBSFX@" 508 cd ..; $(STRIP_LIB_DEBUG) "$(DESTDIR)$(libdir)/libmzgc.@LIBSFX@" 509 cd ..; $(STRIP_LIB_DEBUG) "$(DESTDIR)$(libdir)/libracket.@LIBSFX@" 510 511unix-no-install-libs-cgc: 512 $(NOOP) 513 514unix-install-cgc-final: 515 $(NOOP) 516 517unix-install-3m: 518 cd ..; $(ICP) bc/racket@MMM@ "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@" 519 cd ..; $(STRIP_SIGNATURE) "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@" 520 cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@" 521 $(MAKE) unix-@INSTALL_LIBS_ENABLE@-libs-3m 522 cd ..; $(ICP) bc/mzdyn3m.o "$(DESTDIR)$(libpltdir)/mzdyn3m.o" 523 @RUN_RACKET_MMM@ $(SETUP_BOOT_COLLECTS_PATH) "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@@EXE_SUFFIX@" $(DESTDIR)@COLLECTS_PATH@ $(DESTDIR)@CONFIG_PATH@ 524 $(RESTORE_SIGNATURE) "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@" 525 526unix-install-libs-3m: 527 cd ..; $(ICP_LIB) bc/libracket3m.@LIBSFX@ "$(DESTDIR)$(libdir)/libracket3m.@LIBSFX@" 528 cd ..; $(ICP_STATIC_LIB) bc/rktio/librktio.@LIBSFX@ "$(DESTDIR)$(libdir)/librktio.@LIBSFX@" 529 cd ..; $(STRIP_LIB_DEBUG) "$(DESTDIR)$(libdir)/libracket3m.@LIBSFX@" 530 531unix-no-install-libs-3m: 532 $(NOOP) 533 534unix-install-3m-final: 535 $(NOOP) 536 537# mingw install ---------------------------------------- 538 539mingw-install: 540 cd ..; rm -f "$(DESTDIR)@MZINSTALLBINDIR@/racket@CGC_INSTALLED@" 541 cd ..; rm -f "$(DESTDIR)@MZINSTALLBINDIR@/racket@MMM_INSTALLED@" 542 cd ..; cp bc/starter@EXE_SUFFIX@ "$(DESTDIR)$(libpltdir)/MzStart@EXE_SUFFIX@" 543 cd ..; cp bc/mrstarter@EXE_SUFFIX@ "$(DESTDIR)$(libpltdir)/MrStart@EXE_SUFFIX@" 544 cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(libpltdir)/MzStart@EXE_SUFFIX@" 545 cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(libpltdir)/MrStart@EXE_SUFFIX@" 546 cp "$(srcdir)/../mzcom/prebuilt/MzCOM.tlb" MzCOM.tlb 547 cd ..; cp bc/MzCOM.tlb "$(DESTDIR)$(libpltdir)/MzCOM.tlb" 548 549mingw-install-cgc: 550 cd ..; mkdir -p "$(DESTDIR)$(libdir)/gcc" 551 cd ..; $(ICP) bc/libmzgcxxxxxxx.lib "$(DESTDIR)$(libdir)/gcc/libmzgcxxxxxxx.lib" 552 cd ..; $(ICP) bc/libmzgcxxxxxxx.exp "$(DESTDIR)$(libdir)/gcc/libmzgcxxxxxxx.exp" 553 cd ..; $(ICP) bc/libmzgc.def "$(DESTDIR)$(libdir)/libmzgcxxxxxxx.def" 554 cd ..; $(ICP) bc/libracketxxxxxxx.lib "$(DESTDIR)$(libdir)/gcc/libracketxxxxxxx.lib" 555 cd ..; $(ICP) bc/libracketxxxxxxx.exp "$(DESTDIR)$(libdir)/gcc/libracketxxxxxxx.exp" 556 cd ..; $(ICP) bc/libracket.def "$(DESTDIR)$(libdir)/libracketxxxxxxx.def" 557 cd ..; $(ICP) bc/mzdyncgc.o "$(DESTDIR)$(libdir)/gcc/mzdyn.obj" 558 cd ..; $(ICP) bc/mzdyncgc.exp "$(DESTDIR)$(libdir)/gcc/mzdyn.exp" 559 cd ..; $(ICP) bc/lib/libmzgcxxxxxxx.dll "$(DESTDIR)$(libdir)/libmzgcxxxxxxx.dll" 560 cd ..; $(ICP) bc/lib/libracketxxxxxxx.dll "$(DESTDIR)$(libdir)/libracketxxxxxxx.dll" 561 cd ..; $(ICP) bc/racket@CGC@@EXE_SUFFIX@ "$(DESTDIR)@MZINSTALLBINDIR@/Racket@CGC_INSTALLED@@EXE_SUFFIX@" 562 cd ..; $(ICP) bc/mzcom@CGC@@EXE_SUFFIX@ "$(DESTDIR)$(libdir)/MzCOM@CGC_INSTALLED@@EXE_SUFFIX@" 563 cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(libdir)/libmzgcxxxxxxx.dll" 564 cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(libdir)/libracketxxxxxxx.dll" 565 cd ..; $(STRIP_DEBUG) "$(DESTDIR)@MZINSTALLBINDIR@/Racket@CGC_INSTALLED@@EXE_SUFFIX@" 566 cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(libdir)/MzCOM@CGC_INSTALLED@@EXE_SUFFIX@" 567 @RUN_RACKET_CGC@ $(SETUP_BOOT_COLLECTS_PATH) @DIRCVTPRE@"$(DESTDIR)@MZINSTALLBINDIR@/Racket@CGC_INSTALLED@@EXE_SUFFIX@"@DIRCVTPOST@ $(DESTDIR)@COLLECTS_PATH@ $(DESTDIR)@CONFIG_PATH@ 568 569mingw-install-cgc-final: 570 $(NOOP) 571 572mingw-install-3m: 573 cd ..; mkdir -p "$(DESTDIR)$(libdir)/gcc" 574 cd ..; $(ICP) bc/gc2/libracket3mxxxxxxx.lib "$(DESTDIR)$(libdir)/gcc/libracket3mxxxxxxx.lib" 575 cd ..; $(ICP) bc/gc2/libracket3mxxxxxxx.exp "$(DESTDIR)$(libdir)/gcc/libracket3mxxxxxxx.exp" 576 cd ..; $(ICP) bc/gc2/libracket3m.def "$(DESTDIR)$(libdir)/libracket3mxxxxxxx.def" 577 cd ..; $(ICP) bc/mzdyn3m.o "$(DESTDIR)$(libdir)/gcc/mzdyn3m.obj" 578 cd ..; $(ICP) bc/mzdyn3m.exp "$(DESTDIR)$(libdir)/gcc/mzdyn3m.exp" 579 cd ..; $(ICP) bc/racket@MMM@@EXE_SUFFIX@ "$(DESTDIR)@MZINSTALLBINDIR@/Racket@MMM_INSTALLED@@EXE_SUFFIX@" 580 cd ..; $(ICP) bc/mzcom@MMM@@EXE_SUFFIX@ "$(DESTDIR)$(libdir)/MzCOM@MMM_INSTALLED@@EXE_SUFFIX@" 581 cd ..; $(ICP) bc/lib/libracket3mxxxxxxx.dll "$(DESTDIR)$(libdir)/libracket3mxxxxxxx.dll" 582 cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(libdir)/libracket3mxxxxxxx.dll" 583 cd ..; $(STRIP_DEBUG) "$(DESTDIR)@MZINSTALLBINDIR@/Racket@MMM_INSTALLED@@EXE_SUFFIX@" 584 cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(libdir)/MzCOM@MMM_INSTALLED@@EXE_SUFFIX@" 585 @RUN_RACKET_MMM@ $(SETUP_BOOT_COLLECTS_PATH) @DIRCVTPRE@"$(DESTDIR)@MZINSTALLBINDIR@/Racket@MMM_INSTALLED@@EXE_SUFFIX@"@DIRCVTPOST@ $(DESTDIR)@COLLECTS_PATH@ $(DESTDIR)@CONFIG_PATH@ 586 587mingw-install-3m-final: 588 $(NOOP) 589 590# OS X install ---------------------------------------- 591 592MZFWDIR = @FRAMEWORK_INSTALL_DIR@/Racket.framework 593MZFWMMM = Racket.framework/Versions/$(FWVERSION)_3m/Racket 594FRAMEWORK_REL_PREFIX = "@executable_path/../$(libpltdir_rel)/" 595FRAMEWORK_ABS_PREFIX = "$(libpltdir)/" 596 597osx-install: 598 $(MAKE) unix-install 599 rm -f $(DESTDIR)$(MZFWDIR)/Racket 600 rm -rf $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION) 601 rm -rf $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION)_3m 602 if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then @RUN_RACKET_CGC@ -cu "$(srcdir)/../mac/clean-fw.rkt" $(DESTDIR)$(MZFWDIR) ; fi 603 mkdir -p $(DESTDIR)@FRAMEWORK_INSTALL_DIR@ 604 605osx-install-cgc: 606 $(MAKE) unix-install-cgc 607 mkdir -p $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION) 608 cp $(MZFW) $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION)/ 609 $(STRIP_SIGNATURE) $(DESTDIR)"$(bindir)/racket@CGC_INSTALLED@" 610 /usr/bin/install_name_tool -change "@executable_path/Racket.framework/Versions/$(FWVERSION)/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)/Racket" $(DESTDIR)"$(bindir)/racket@CGC_INSTALLED@" 611 $(RESTORE_SIGNATURE) $(DESTDIR)"$(bindir)/racket@CGC_INSTALLED@" 612 613osx-install-cgc-final: 614 $(MAKE) unix-install-cgc-final 615 ln -s Versions/$(FWVERSION)/Racket $(DESTDIR)$(MZFWDIR)/ 616 617osx-install-3m: 618 $(MAKE) unix-install-3m 619 mkdir -p $(DESTDIR)"$(MZFWDIR)/Versions/$(FWVERSION)_3m" 620 cp $(MZFWMMM) $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION)_3m/ 621 $(STRIP_SIGNATURE) $(DESTDIR)"$(bindir)/racket@MMM_INSTALLED@" 622 /usr/bin/install_name_tool -change "@executable_path/Racket.framework/Versions/$(FWVERSION)_3m/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)_3m/Racket" $(DESTDIR)"$(bindir)/racket@MMM_INSTALLED@" 623 $(RESTORE_SIGNATURE) $(DESTDIR)"$(bindir)/racket@MMM_INSTALLED@" 624 625osx-install-3m-final: 626 $(MAKE) unix-install-3m-final 627 ln -s Versions/$(FWVERSION)_3m/Racket $(DESTDIR)$(MZFWDIR)/ 628 629 630# Cygwin install ---------------------------------------- 631 632unix-cygwin-install: 633 $(MAKE) unix-install 634 cd dynsrc; $(MAKE) cygwin-install-core 635 636unix-cygwin-install-cgc: 637 $(MAKE) unix-install-cgc 638 cd dynsrc; $(MAKE) cygwin-install-cgc 639 640unix-cygwin-install-cgc-final: 641 $(MAKE) unix-install-cgc-final 642 643unix-cygwin-install-3m: 644 $(MAKE) unix-install-3m 645 cd dynsrc; $(MAKE) cygwin-install-3m 646 647unix-cygwin-install-3m-final: 648 $(MAKE) unix-install-3m-final 649 650# Generate plt-gdbinit ---------------------------------------- 651 652mz-gdbinit: $(srcdir)/mk-gdbinit.rkt $(srcdir)/src/stypes.h 653 $(RACKET) $(srcdir)/mk-gdbinit.rkt 654 655 656# Reconfigure ---------------------------------------- 657 658SRC_MAKEFILES = $(srcdir)/Makefile.in \ 659 $(srcdir)/src/Makefile.in $(srcdir)/gracket/Makefile.in \ 660 $(srcdir)/gc2/Makefile.in $(srcdir)/gracket/gc2/Makefile.in \ 661 $(srcdir)/../rktio/Makefile.in $(srcdir)/dynsrc/Makefile.in \ 662 $(srcdir)/foreign/Makefile.in $(srcdir)/foreign/libffi/Makefile.in 663 664# Only fire the `Makefile` rule explicitly via `reconfigure` 665NO_RECONFIG = 666ON_RECONFIG = no 667 668reconfigure: 669 $(MAKE) Makefile NO_RECONFIG=no ON_RECONFIG= 670 671Makefile$(ON_RECONFIG): $(srcdir)/configure $(SRC_MAKEFILES) 672 $(srcdir)/configure $(CONFIGURE_ARGS_qq) $(MORE_CONFIGURE_ARGS) 673