# # Makefile for gracket # srcdir = ../../gracket prefix = /var/tmp/racket exec_prefix = ${prefix} bindir = ${prefix}/bin libdir = ${exec_prefix}/lib libpltdir = ${prefix}/lib collectsdir = ${prefix}/collects builddir = . # for version.mak: mainsrcdir = ../../gracket/.. -include ../../gracket/../racket/version.mak WXDIR = $(srcdir)/../wxxt PLTSRCDIR = $(srcdir)/.. PLTBUILDDIR = $(builddir)/.. NOOP = : # See ../Makefile about RUN_RACKET_, which # typically redirects to RUN_THIS_RACKET_: RUN_THIS_RACKET_CGC = ../racket/racketcgc RUN_THIS_RACKET_MMM = ../racket/racket3m ########################### # Common Macros # ########################### CC = gcc LINKER = $(CC) RANLIB = ranlib AR = ar ARFLAGS = ruv OPTIONS = XLIB = LDLIBS = -ldl -lm -ldl -lm -rdynamic GCDIRECTORY = gc WBUILD = @WBUILD@ WXVARIANT = wx_xt NOGCINC = $(WXINC) -I$(PLTBUILDDIR)/racket/ -I$(PLTSRCDIR)/racket/include/ INC = -I$(PLTSRCDIR)/racket/$(GCDIRECTORY) $(NOGCINC) CFLAGS = $(INC) $(OPTIONS) -D$(WXVARIANT) -Wall -g -O2 -pthread LDFLAGS = -pthread ARLIBFLAGS = $(LDFLAGS) $(LDLIBS) ########################### GRACKETLINKER = $(CC) GRACKETLDLIBS = ../racket/libracket.a ../racket/libmzgc.a $(LDLIBS) GRACKETLDLIBS.mingw = ../racket/libracket.dll.a ../racket/libmzgc.dll.a $(LDLIBS) -ldelayimp GRACKETLDFLAGS = $(LDFLAGS) -L../racket GRACKETRES = GRACKETRESDEP = GRACKETRES.mingw = -mwindows gres.o GRACKETRESDEP.mingw = gres.o LOCALFLAGS_wx_xt = -MMD LOCALFLAGS_wx_mac = -I$(srcdir)/../mac/racket -MMD -DWX_CARBON LOCALFLAGS = $(LOCALFLAGS_wx_xt) GRACKETOBJECTS = grmain.o RACKETDEPS = ../racket/libracket.a ../racket/libmzgc.a MRSTATIC = MRSTATIC_STUB = MZEXTRAEXPORT='GCDIR=$(GCDIRECTORY)' LINKRESULT_wx_xt = gracketcgc LINKRESULT_wx_mac = GRacketcgc.app/Contents/MacOS/GRacketcgc LINKRESULT = $(LINKRESULT_wx_xt) # Incremented each time the binaries change: DOWNLOAD_BIN_VERSION = 1 bin: $(MAKE) 3m 3m: $(MAKE) resources cd gc2; $(MAKE) 3m cgc: $(MAKE) $(LINKRESULT) both: $(MAKE) cgc $(MAKE) 3m gracketcgc : $(RACKETDEPS) grmain.o $(GRACKETOBJECTS) $(MRSTATIC_STUB) $(GRACKETRESDEP) $(GRACKETLINKER) $(GRACKETLDFLAGS) $(MRSTATIC) -o gracketcgc $(GRACKETOBJECTS) $(GRACKETRES) $(GRACKETLDLIBS) $(MRSTATIC_STUB) gres.o : $(srcdir)/../worksp/gracket/gracket.rc windres -i $(srcdir)/../worksp/gracket/gracket.rc -o gres.o resources : $(NOOP) resources.mingw : gres.o $(NOOP) MRFW = Racket.framework/Versions/$(FWVERSION)/Racket MRAPPSKEL = GRacketcgc.app/Contents/MacOS GRacketcgc.app/Contents/MacOS/GRacketcgc: $(MZFW) $(MRAPPSKEL) grmain.o $(GRACKETLINKER) $(GRACKETLDFLAGS) -o GRacketcgc.app/Contents/MacOS/GRacketcgc grmain.o -Wl,-headerpad_max_install_names -F../racket -framework Racket -framework CoreFoundation /usr/bin/install_name_tool -change "Racket.framework/Versions/$(FWVERSION)/Racket" "@executable_path/../../../../racket/Racket.framework/Versions/$(FWVERSION)/Racket" GRacketcgc.app/Contents/MacOS/GRacketcgc $(MRAPPSKEL): $(srcdir)/../mac/osx_appl.rkt env BUILDBASE=.. $(RUN_THIS_RACKET_CGC) -cqu $(srcdir)/../mac/osx_appl.rkt $(srcdir)/.. "cgc" ee-app: gracket grmain_ee.o if [ "$(EEAPP)" = '' ] ; then echo "ERROR: You must specify EEAPP" ; else $(GRACKETLINKER) $(GRACKETLDFLAGS) $(MRSTATIC) -o $(EEAPP) grmain_ee.o $(EEOBJECTS) $(GRACKETLDLIBS) $(MRSTATIC_STUB) ; fi sunos4-static: dl_stub.o $(MAKE) gracket MRSTATIC=-static MRSTATIC_STUB='dl_stub.o' LDNONSTATICLIBS='' solaris-static: $(MAKE) gracket MRSTATIC="-Wl,-Bstatic" LDNONSTATICLIBS='-Wl,-Bdynamic -ldl -Wl,-Bstatic' linux-static: $(MAKE) gracket MRSTATIC=--static LDNONSTATICLIBS='-ldl' DEF_COLLECTS_DIR = -DINITIAL_COLLECTS_DIRECTORY='"'"`cd $(srcdir)/../../collects; pwd`"'"' grmain.o : $(srcdir)/grmain.c $(srcdir)/../racket/main.c \ $(srcdir)/../racket/cmdline.inc $(srcdir)/../racket/src/stypes.h \ $(srcdir)/../racket/include/scheme.h $(CC) $(LOCALFLAGS) $(CFLAGS) $(DEF_COLLECTS_DIR) -c $(srcdir)/grmain.c -o grmain.o grmain_ee.o : gracket.o $(CC) $(LOCALFLAGS) $(CFLAGS) -DSTANDALONE_WITH_EMBEDDED_EXTENSION $(DEF_COLLECTS_DIR) -c $(srcdir)/grmain.cxx -o grmain_ee.o ee-main: $(MAKE) grmain_ee.o clean: rm -f *.o *.d core gracket gracket3m rm -f gc2/*.o gc2/xsrc/* gc2/macxsrc/* gc2/*.d gc2/*.dd ICP=cp BUILDINFO="$(DESTDIR)$(libpltdir)/buildinfo" # Prefix might be relative to srcdir, or it might be absolute, so we # have to go up and install things from there. install: $(MAKE) install-3m install-3m: $(MAKE) install-wx_xt $(MAKE) install-wx_xt-3m $(MAKE) install-wx_xt-3m-final install-cgc: $(MAKE) install-wx_xt $(MAKE) install-wx_xt-cgc $(MAKE) install-wx_xt-cgc-final install-both: $(MAKE) install-wx_xt $(MAKE) install-wx_xt-3m $(MAKE) install-wx_xt-cgc $(MAKE) install-wx_xt-3m-final install-post-collects: $(MAKE) install-wx_xt-post-collects install-common: $(RUN_THIS_RACKET_CGC) -c "$(srcdir)/../get-libs.rkt" gui "$(DESTDIR)$(libpltdir)" # X11 ---------------------------------------- install-wx_xt: $(MAKE) install-common cd ..; rm -f "$(DESTDIR)$(bindir)/gracketcgc" cd ..; rm -f "$(DESTDIR)$(bindir)/gracket" cd ..; echo 'MROPTIONS=' >> $(BUILDINFO) cd ..; echo "MRLIBS=$(GUILIBS_wx_xt)" >> $(BUILDINFO) cd ..; echo "MRLDFLAGS=$(GRACKETLDFLAGS)" >> $(BUILDINFO) cd ..; mkdir -p "$(DESTDIR)$(bindir)"; install-no-lib-cgc-wx_xt: echo "no dynamic libs" install-lib-cgc-wx_xt: $(NOOP) install-wx_xt-cgc: $(MAKE) install-no-lib-cgc-wx_xt cd ..; $(ICP) gracket/gracketcgc "$(DESTDIR)$(bindir)/gracketcgc" cd ..; strip -S "$(DESTDIR)$(bindir)/gracketcgc" $(RUN_THIS_RACKET_CGC) -cu "$(srcdir)/../racket/collects-path.rkt" "$(DESTDIR)$(bindir)/gracketcgc" ../collects install-wx_xt-cgc-final: $(NOOP) install-no-lib-3m-wx_xt: echo "no dynamic libs" install-lib-3m-wx_xt: $(NOOP) install-wx_xt-3m: $(MAKE) install-no-lib-3m-wx_xt cd ..; $(ICP) gracket/gracket3m "$(DESTDIR)$(bindir)/gracket" cd ..; strip -S "$(DESTDIR)$(bindir)/gracket" $(RUN_THIS_RACKET_MMM) -cu "$(srcdir)/../racket/collects-path.rkt" "$(DESTDIR)$(bindir)/gracket" ../collects install-wx_xt-3m-final: $(NOOP) install-wx_xt-post-collects: $(NOOP) # Mac OS X ---------------------------------------- FRAMEWORK_REL_PREFIX="@executable_path/../../../lib/" install-wx_mac: $(MAKE) install-common cd ..; rm -rf "$(prefix)/GRacketCGC.app" cd ..; rm -rf "$(prefix)/GRacket.app" install-wx_mac-cgc: cd ..; $(ICP) -r gracket/GRacketcgc.app "$(prefix)/GRacketCGC.app" $(RUN_THIS_RACKET_CGC) -cqu "$(srcdir)/../mac/rename-app.rkt" "$(prefix)/GRacketCGC.app" "GRacketcgc" "GRacketCGC" /usr/bin/install_name_tool -change "@executable_path/../../../../racket/Racket.framework/Versions/$(FWVERSION)/Racket" "Racket.framework/Versions/$(FWVERSION)/Racket" "$(prefix)/GRacketCGC.app/Contents/MacOS/GRacketCGC" $(RUN_THIS_RACKET_CGC) -cu "$(srcdir)/../racket/collects-path.rkt" "$(prefix)/GRacketCGC.app/Contents/MacOS/GRacketCGC" ../../../collects strip -S "$(prefix)/GRacketCGC.app/Contents/MacOS/GRacketCGC" install-wx_mac-cgc-final: $(NOOP) install-wx_mac-3m: cd ..; $(ICP) -r "gracket/GRacket3m.app" "$(prefix)/GRacket.app" $(RUN_THIS_RACKET_MMM) -cqu "$(srcdir)/../mac/rename-app.rkt" "$(prefix)/GRacket.app" "GRacket3m" "GRacket" /usr/bin/install_name_tool -change "@executable_path/../../../../racket/Racket.framework/Versions/$(FWVERSION)_3m/Racket" "Racket.framework/Versions/$(FWVERSION)_3m/Racket" "$(prefix)/GRacket.app/Contents/MacOS/GRacket" $(RUN_THIS_RACKET_MMM) -cu "$(srcdir)/../racket/collects-path.rkt" "$(prefix)/GRacket.app/Contents/MacOS/GRacket" "../../../collects" strip -S "$(prefix)/GRacket.app/Contents/MacOS/GRacket" install-wx_mac-3m-final: $(NOOP) install-wx_mac-post-collects: cd ..; rm -rf $(collectsdir)/launcher/Starter.app mkdir -p $(collectsdir)/launcher cd ..; $(ICP) -r gracket/Starter.app $(collectsdir)/launcher/. -include grmain.d