X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ea8628fb7498635a2745b9141947d3bc27be7163..94311eef78b66304c9a2f78bcbdd396c798f19a6:/src/makeprog.env.in?ds=inline diff --git a/src/makeprog.env.in b/src/makeprog.env.in index 3e33e6a51d..f8f61f00cb 100644 --- a/src/makeprog.env.in +++ b/src/makeprog.env.in @@ -1,55 +1,80 @@ # Make environment for making samples on Unix -# Clears all default suffixes -.SUFFIXES: .o .cpp .c .cxx - -# The binary program extension, if any, including dots {e.g. '.exe'} +# The binary program extension, if any, including dots (e.g. '.exe') PROGRAM_EXT = @PROGRAM_EXT@ -BIN_PROGRAM = ${PROGRAM}${PROGRAM_EXT} -RES_PROGRAM = ${PROGRAM}_resources.o -RES_PROGRAM_OPT = @RESPROGRAM@ +BIN_PROGRAM = $(PROGRAM)$(PROGRAM_EXT) +RES_PROGRAM_OBJ = @RESPROGRAMOBJ@ +BUNDLE = $(BIN_PROGRAM).app/Contents + +# NB: see remark in Makefile.in as to why we don't use %.foo: %.bar rules +.SUFFIXES: .o .c .cpp .cxx .rc _resources.o + +.c.o: + $(CC) -c $(CFLAGS) $(APPEXTRADEFS) -o $@ $< -# To add resources to the Mac OS X applications -LIBWX_MACRES = ${top_builddir}/lib/lib@WX_LIBRARY@-${WX_MAJOR_VERSION_NUMBER}.${WX_MINOR_VERSION_NUMBER}.r -LIBWX_MACRESCOMP = ${RESCOMP} ${RESFLAGS} ${LIBWX_MACRES} -o ${BIN_PROGRAM} +.cpp.o: + $(CXX) -c $(CXXFLAGS) $(APPEXTRADEFS) -o $@ $< -.c.o : - ${CCC} -c @DEP_INFO_FLAGS@ ${CFLAGS} ${APPEXTRADEFS} -o $@ $< +.cxx.o: + $(CXX) -c $(CXXFLAGS) $(APPEXTRADEFS) -o $@ $< -.cpp.o : - ${CC} -c @DEP_INFO_FLAGS@ ${CXXFLAGS} ${APPEXTRADEFS} -o $@ $< +.rc_resources.o: + $(RESCOMP) -i $< -o $@ $(RESFLAGS) -.cxx.o : - ${CC} -c @DEP_INFO_FLAGS@ ${CXXFLAGS} ${APPEXTRADEFS} -o $@ $< # 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 +VPATH = @PATH_IFS@$(top_srcdir)/$(program_dir) # ':' for autoconf # Set defaults from configure -include ${top_builddir}/src/make.env +include $(top_builddir)/src/make.env -all: ${BIN_PROGRAM} install_dirs install_data +all: $(BIN_PROGRAM) @MACOSX_BUNDLE@ install_dirs install_data -${BIN_PROGRAM}: ${OBJECTS} ${top_builddir}/lib/@WX_TARGET_LIBRARY@ ${RES_PROGRAM_OPT} @LIBWXMACRES@ - ${CC} ${LDFLAGS} -o ${BIN_PROGRAM} ${OBJECTS} ${LDLIBS} ${LIBRARIES} ${RES_PROGRAM_OPT} - @LIBWXMACRESCOMP@ - -${RES_PROGRAM}: ${PROGRAM}.rc - ${RESCOMP} ${RCINPUTSWITCH} ${top_srcdir}/${program_dir}/${PROGRAM}.rc ${RCOUTPUTSWITCH} ${PROGRAM}_resources.o ${RESFLAGS} +$(BIN_PROGRAM): $(OBJECTS) $(top_builddir)/lib/@WX_TARGET_LIBRARY@ $(RES_PROGRAM_OBJ) @LIBWXMACRES@ + $(CXX) $(LDFLAGS_EXE) -o $@ $(OBJECTS) $(LDLIBS) $(LIBRARIES) $(RES_PROGRAM_OBJ) + @MACRESCOMP@ $(BIN_PROGRAM) $(RESOPTIONS) + @MACSETFILE@ $(SETOPTIONS) $(BIN_PROGRAM) install_dirs: - @list='${DATADIRS}'; for p in $$list; do \ - mkdir -p ${top_builddir}/${program_dir}/$$p; \ + @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; \ + @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} ${BIN_PROGRAM} ${RES_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/wxmac.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/wxmac.icns: $(top_srcdir)/src/$(TOOLKITDIR)/wxmac.icns + @$(INSTALL) -d `dirname $@` + cp $< $@