]> git.saurik.com Git - wxWidgets.git/blobdiff - src/makeprog.env.in
Fix for compilation error in Unicode mode
[wxWidgets.git] / src / makeprog.env.in
index fd1a3128853a083cb580fc883b8a8769e8a6e9fc..28219da896e14563b71adeee65d6605f85598e4f 100644 (file)
@@ -4,17 +4,21 @@
 PROGRAM_EXT = @PROGRAM_EXT@
 BIN_PROGRAM = $(PROGRAM)$(PROGRAM_EXT)
 RES_PROGRAM_OBJ = @RESPROGRAMOBJ@
 PROGRAM_EXT = @PROGRAM_EXT@
 BIN_PROGRAM = $(PROGRAM)$(PROGRAM_EXT)
 RES_PROGRAM_OBJ = @RESPROGRAMOBJ@
+BUNDLE = $(BIN_PROGRAM).app/Contents
 
 
-%.o : %.c
+# 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 $@ $<
 
        $(CC) -c $(CFLAGS) $(APPEXTRADEFS) -o $@ $<
 
-%.o : %.cpp
+.cpp.o:
        $(CXX) -c $(CXXFLAGS) $(APPEXTRADEFS) -o $@ $<
 
        $(CXX) -c $(CXXFLAGS) $(APPEXTRADEFS) -o $@ $<
 
-%.o : %.cxx
+.cxx.o:
        $(CXX) -c $(CXXFLAGS) $(APPEXTRADEFS) -o $@ $<
 
        $(CXX) -c $(CXXFLAGS) $(APPEXTRADEFS) -o $@ $<
 
-%_resources.o : %.rc
+.rc_resources.o:
        $(RESCOMP) -i $< -o $@ $(RESFLAGS)
 
 
        $(RESCOMP) -i $< -o $@ $(RESFLAGS)
 
 
@@ -26,18 +30,17 @@ VPATH = @PATH_IFS@$(top_srcdir)/$(program_dir) # ':' for autoconf
 # Set defaults from configure
 include $(top_builddir)/src/make.env
 
 # Set defaults from configure
 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_OBJ) @LIBWXMACRES@
 
 $(BIN_PROGRAM):        $(OBJECTS) $(top_builddir)/lib/@WX_TARGET_LIBRARY@ $(RES_PROGRAM_OBJ) @LIBWXMACRES@
-       $(CXX) $(LDFLAGS) -o $(BIN_PROGRAM) $(OBJECTS) $(LDLIBS) $(LIBRARIES) $(RES_PROGRAM_OBJ)
+       $(CXX) $(LDFLAGS_EXE) -o $@ $(OBJECTS) $(LDLIBS) $(LIBRARIES) $(RES_PROGRAM_OBJ)
        @LIBWXMACRESCOMP@
 
        @LIBWXMACRESCOMP@
 
-
 install_dirs:
        @list='$(DATADIRS)'; for p in $$list; do \
          mkdir -p $(top_builddir)/$(program_dir)/$$p; \
        done
 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 \
 install_data:
        @list='$(DATAFILES)'; for p in $$list; do \
          if test ! -s $(top_builddir)/$(program_dir)/$$p; then \
@@ -48,3 +51,29 @@ install_data:
 clean:
        rm -f $(OBJECTS) $(DEPFILES) $(BIN_PROGRAM) $(RES_PROGRAM_OBJ) core
 
 clean:
        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 $< $@