X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8e877c195bc9ade6d4cb9f96bffb00e81978d740..d86ab8e29f25edc23e99725f7474c95120e8f862:/src/makeprog.env.in diff --git a/src/makeprog.env.in b/src/makeprog.env.in index 9bad0a0c9e..28219da896 100644 --- a/src/makeprog.env.in +++ b/src/makeprog.env.in @@ -1,18 +1,79 @@ # Make environment for making samples on Unix -# Replace this with your own path if necessary -WXDIR = $(WXWIN) +# The binary program extension, if any, including dots (e.g. '.exe') +PROGRAM_EXT = @PROGRAM_EXT@ +BIN_PROGRAM = $(PROGRAM)$(PROGRAM_EXT) +RES_PROGRAM_OBJ = @RESPROGRAMOBJ@ +BUNDLE = $(BIN_PROGRAM).app/Contents -# this is for using the samples in ../samples/xxxxx -pretop_srcdir = @top_srcdir@ -top_srcdir = ../$(pretop_srcdir) -top_builddir = ../.. -include ../../src/make.env +# NB: see remark in Makefile.in as to why we don't use %.foo: %.bar rules +.SUFFIXES: .o .c .cpp .cxx .rc _resources.o -all: $(PROGRAM) +.c.o: + $(CC) -c $(CFLAGS) $(APPEXTRADEFS) -o $@ $< -$(PROGRAM): $(OBJECTS) ../../lib/$(WXLIB) - $(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJECTS) $(LDLIBS) +.cpp.o: + $(CXX) -c $(CXXFLAGS) $(APPEXTRADEFS) -o $@ $< + +.cxx.o: + $(CXX) -c $(CXXFLAGS) $(APPEXTRADEFS) -o $@ $< + +.rc_resources.o: + $(RESCOMP) -i $< -o $@ $(RESFLAGS) + + +# the comment at the end of the next line is needed because otherwise autoconf +# would remove this line completely - it contains a built-in hack to remove +# any VPATH assignment not containing ':' +VPATH = @PATH_IFS@$(top_srcdir)/$(program_dir) # ':' for autoconf + +# Set defaults from configure +include $(top_builddir)/src/make.env + +all: $(BIN_PROGRAM) @MACOSX_BUNDLE@ install_dirs install_data + +$(BIN_PROGRAM): $(OBJECTS) $(top_builddir)/lib/@WX_TARGET_LIBRARY@ $(RES_PROGRAM_OBJ) @LIBWXMACRES@ + $(CXX) $(LDFLAGS_EXE) -o $@ $(OBJECTS) $(LDLIBS) $(LIBRARIES) $(RES_PROGRAM_OBJ) + @LIBWXMACRESCOMP@ + +install_dirs: + @list='$(DATADIRS)'; for p in $$list; do \ + mkdir -p $(top_builddir)/$(program_dir)/$$p; \ + done + +install_data: + @list='$(DATAFILES)'; for p in $$list; do \ + if test ! -s $(top_builddir)/$(program_dir)/$$p; then \ + cp -pRf $(top_srcdir)/$(program_dir)/$$p $(top_builddir)/$(program_dir)/$$p; \ + fi; \ + done clean: - rm -f $(OBJECTS) $(PROGRAM) core + rm -f $(OBJECTS) $(DEPFILES) $(BIN_PROGRAM) $(RES_PROGRAM_OBJ) core + +# +# Targets to build a Mac OS X application bundle +# +bundle: $(BUNDLE)/MacOS/$(PROGRAM) $(BUNDLE)/Info.plist $(BUNDLE)/PkgInfo $(BUNDLE)/Resources/$(PROGRAM).rsrc $(BUNDLE)/Resources/$(PROGRAM).icns + +$(BUNDLE)/Info.plist: $(top_srcdir)/src/$(TOOLKITDIR)/Info.plist.in $(top_builddir)/lib/@WX_TARGET_LIBRARY@ + @$(INSTALL) -d `dirname $@` + sed -e "s/IDENTIFIER/`echo $(program_dir) | sed 's,/,.,g'`/" \ + -e "s/EXECUTABLE/$(PROGRAM)/" \ + -e "s/VERSION/$(WX_MAJOR_VERSION_NUMBER).$(WX_MINOR_VERSION_NUMBER).$(WX_RELEASE_NUMBER)/" $< > $@ + +$(BUNDLE)/PkgInfo: + @$(INSTALL) -d `dirname $@` + echo -n "APPL????" > $@ + +$(BUNDLE)/MacOS/$(PROGRAM): $(OBJECTS) $(top_builddir)/lib/@WX_TARGET_LIBRARY@ + @$(INSTALL) -d `dirname $@` + $(CXX) $(LDFLAGS_EXE) -o $@ $(OBJECTS) $(LDLIBS) $(LIBRARIES) + +$(BUNDLE)/Resources/$(PROGRAM).rsrc: $(top_builddir)/lib/@WX_RESOURCES_MACOSX_DATA@ + @$(INSTALL) -d `dirname $@` + cp $< $@ + +$(BUNDLE)/Resources/$(PROGRAM).icns: $(top_srcdir)/src/$(TOOLKITDIR)/wxmac.icns + @$(INSTALL) -d `dirname $@` + cp $< $@