-#
+#####################################################################
# File: makefile.unx
+# Purpose: Makefile for Unix wxWindows ports (both GUI and wxBase)
# Author: Julian Smart, Robert Roebling, Vadim Zeitlin, Ron Lee
# Created: 1993
-# Updated: 2001
+# Version: $Id$
# Copyright:(c) 1993, AIAI, University of Edinburgh,
# Copyright:(c) 1999, Vadim Zeitlin
# Copyright:(c) 1999, Robert Roebling
# Copyright:(c) 2001, Ron Lee
-#
-# Makefile for libwx_gtk.a, libwx_motif.a and libwx_msw.a
-
-###################################################################
+#####################################################################
include ./src/make.env
-############## override make.env for PIC ##########################
+#################### the implicit rules #############################
+
+# NB: we use the old style suffix rules (.c.o) and not the GNU make
+# implicit rules (%.o: %.c) because they are more portable, in
+# particular the BSD make understands the former but not the
+# latter
+.SUFFIXES: .o .c .cpp .cxx .rsrc .r
-%.o : %.c
+.c.o:
$(CC) -c $(CFLAGS) $(PICFLAGS) -o $@ $<
-%.o : %.cpp
+.cpp.o:
$(CXX) -c $(CXXFLAGS) $(PICFLAGS) -o $@ $<
-%.o : %.cxx
+.cxx.o:
$(CXX) -c $(CXXFLAGS) $(PICFLAGS) -o $@ $<
-%.r : %.rsrc
+.rsrc.r:
$(DEREZ) $^ Carbon.r -useDF > $@
-########################### Paths #################################
+############################# Paths #################################
srcdir = @srcdir@
top_srcdir = @top_srcdir@
ZLIBDIR = $(WXDIR)/src/zlib
REGEXDIR = $(WXDIR)/src/regex
GTKDIR = $(WXDIR)/src/gtk
+X11DIR = $(WXDIR)/src/x11
+MGLDIR = $(WXDIR)/src/mgl
MOTIFDIR = $(WXDIR)/src/motif
MSWDIR = $(WXDIR)/src/msw
PMDIR = $(WXDIR)/src/os2
WXGLARCHIVE=@DISTDIR@-gl-$(VER_SUFFIX).tar.gz
WXSAMPLES=wx$(TOOLKIT)-samples-$(VER_SUFFIX).tar.gz
WXDEMOS=wx$(TOOLKIT)-demos-$(VER_SUFFIX).tar.gz
+WXARCHIVE_ZIP=wxMSW-$(VER_SUFFIX).zip
WXARCHIVE_BZIP=@DISTDIR@-$(VER_SUFFIX).tar.bz2
WXGLARCHIVE_BZIP=@DISTDIR@-gl-$(VER_SUFFIX).tar.bz2
# .d and .h/.inl files for the current toolkit
include @PORT_FILES@
-SOURCES = $(ALL_SOURCES)
-HEADERS = $(ALL_HEADERS)
+SOURCES = @ALL_SOURCES@
+HEADERS = @ALL_HEADERS@
# for the objects and depfiles, we might be bulding only part of them
# depending on configure arguments, so select a subset of ALL
pngget.o \
pngset.o
-FREETYPEOBJS = \
- ftsystem.o \
- autohint.o \
- ftbase.o \
- ftdebug.o \
- ftglyph.o \
- ftinit.o \
- ftmm.o \
- cff.o \
- type1cid.o \
- psnames.o \
- psmodule.o \
- raster1.o \
- sfnt.o \
- smooth.o \
- truetype.o \
- type1z.o \
- winfnt.o
-
JPEGOBJS = \
jcomapi.o \
jutils.o \
all: @WX_ALL@
-$(build_libdir)/@WX_LIBRARY_NAME_STATIC@: $(OBJECTS)
+$(build_libdir)/@WX_LIBRARY_NAME_STATIC@: $(OBJECTS)
@$(INSTALL) -d $(build_libdir)
@$(RM) $@
$(AR) $(AROPTIONS) $@ $(OBJECTS)
$(RANLIB) $@
-$(build_libdir)/@WX_LIBRARY_NAME_STATIC_GL@: glcanvas.o
+$(build_libdir)/@WX_LIBRARY_NAME_STATIC_GL@: glcanvas.o
@$(INSTALL) -d $(build_libdir)
@$(RM) $@
$(AR) $(AROPTIONS) $@ glcanvas.o
$(RANLIB) $@
-$(build_libdir)/@WX_LIBRARY_NAME_SHARED@: $(OBJECTS)
+$(build_libdir)/@WX_LIBRARY_NAME_SHARED@: $(OBJECTS)
@$(INSTALL) -d $(build_libdir)
$(SHARED_LD) $@ $(SONAME_FLAGS) $(OBJECTS) $(EXTRALIBS)
-$(build_libdir)/@WX_LIBRARY_NAME_SHARED_GL@: glcanvas.o $(build_libdir)/@WX_LIBRARY_NAME_SHARED@
+# NB: we used to have "-L$(build_libdir) @WXCONFIG_LIBS@" in the SHARED_LD line
+# but this seems to result in problems with libwx_gtk being linked in twice
+$(build_libdir)/@WX_LIBRARY_NAME_SHARED_GL@: glcanvas.o $(build_libdir)/@WX_LIBRARY_NAME_SHARED@
@$(INSTALL) -d $(build_libdir)
- $(SHARED_LD) $@ $(SONAME_FLAGS_GL) glcanvas.o -L$(build_libdir) @WXCONFIG_LIBS@ $(EXTRALIBS) $(OPENGLLIBS)
+ $(SHARED_LD) $@ $(SONAME_FLAGS_GL) glcanvas.o $(EXTRALIBS) $(OPENGLLIBS)
-$(build_libdir)/@WX_RESOURCES_MACOSX@: $(MACRESOURCES)
+$(build_libdir)/@WX_RESOURCES_MACOSX_DATA@: $(MACRESOURCES)
@$(INSTALL) -d $(build_libdir)
$(RESCOMP) -d __UNIX__ -useDF $^ -o $@
&& $(LN_S) @WX_TARGET_LIBRARY_GL@ @WX_LIBRARY_LINK1_GL@ \
&& $(LN_S) @WX_TARGET_LIBRARY_GL@ @WX_LIBRARY_LINK2_GL@
-$(OBJECTS): $(WXDIR)/include/wx/defs.h $(WXDIR)/include/wx/object.h
+$(OBJECTS): $(WXDIR)/include/wx/defs.h $(WXDIR)/include/wx/object.h
-parser.o: parser.c lexer.c
+parser.o: parser.c lexer.c
$(CCLEX) -c $(CFLAGS) -I. $(PICFLAGS) -o $@ parser.c
-parser.c: $(COMMDIR)/parser.y lexer.c
+parser.c: $(COMMDIR)/parser.y lexer.c
$(YACC) $(COMMDIR)/parser.y
@sed -e "s;$(COMMDIR)/y.tab.c;parser.y;g" < y.tab.c | \
sed -e "s/BUFSIZ/5000/g" | \
sed -e "s/unput/PROIO_unput/g" > parser.c
@$(RM) y.tab.c
-lexer.c: $(COMMDIR)/lexer.l
+lexer.c: $(COMMDIR)/lexer.l
$(LEX) $(COMMDIR)/lexer.l
@sed -e "s;$(COMMDIR)/@LEX_STEM@.c;lexer.l;g" < @LEX_STEM@.c | \
sed -e "s/yy/PROIO_yy/g" | \
sed -e "s/unput/PROIO_unput/g" > lexer.c
@$(RM) @LEX_STEM@.c
--include $(OBJECTS:.o=.d)
-
+@IF_GNU_MAKE@-include $(OBJECTS:.o=.d)
CREATE_INSTALLED_LINKS: preinstall
$(RM) $(libdir)/@WX_LIBRARY_LINK1@
$(INSTALL_SCRIPT) $(top_builddir)/wx@TOOLCHAIN_NAME@-config $(bindir)/wx@TOOLCHAIN_NAME@-config
cd $(bindir) && rm -f wx-config && $(LN_S) wx@TOOLCHAIN_NAME@-config wx-config
@INSTALL_LIBRARY@ $(build_libdir)/@WX_TARGET_LIBRARY@ $(libdir)/@WX_TARGET_LIBRARY@
- @if test "x@WX_LIBRARY_IMPORTLIB@" != "x"; then \
+ @if test "x@WX_LIBRARY_IMPORTLIB@" != "x"; then \
$(INSTALL_PROGRAM) $(top_builddir)/lib/@WX_LIBRARY_IMPORTLIB@ $(libdir)/@WX_LIBRARY_IMPORTLIB@; fi
$(INSTALL) -d $(libdir)/wx
$(INSTALL) -d $(libdir)/wx/include
+ $(INSTALL) -d $(libdir)/wx/include/univ
$(INSTALL) -d $(libdir)/wx/include/@TOOLCHAIN_NAME@
$(INSTALL) -d $(libdir)/wx/include/@TOOLCHAIN_NAME@/wx
$(INSTALL_DATA) $(build_libdir)/wx/include/@TOOLCHAIN_NAME@/wx/setup.h \
@if test "$(USE_GUI)" = 1; then $(INSTALL) -d $(includedir)/wx/@TOOLKIT_DIR@; fi
@if test "$(USE_GUI)" = 1; then $(INSTALL) -d $(includedir)/wx/html; fi
@if test "$(USE_GUI)" = 1; then $(INSTALL) -d $(includedir)/wx/generic; fi
+ @if test "$(USE_GUI)" = 1; then $(INSTALL) -d $(includedir)/wx/univ; fi
@if test "@TOOLKIT_DIR@" = "msw"; then $(INSTALL) -d $(includedir)/wx/msw/ole; fi
@# always install msw headers for wxBase, it's much simpler
echo "$(INSTALL_DATA) $(top_srcdir)/locale/$$p.mo $(localedir)/$$p/LC_MESSAGES/wxstd.mo"; \
done
-preinstall_res: $(build_libdir)/@WX_RESOURCES_MACOSX_COMPILED@
+preinstall_res: $(build_libdir)/@WX_RESOURCES_MACOSX_ASCII@ $(build_libdir)/@WX_RESOURCES_MACOSX_DATA@
@echo " "
@echo " Installing wxWindows Mac resource ..."
@echo " "
@if test ! -d $(libdir); then $(INSTALL) -d $(libdir); fi
- $(INSTALL_PROGRAM) $(build_libdir)/@WX_RESOURCES_MACOSX_COMPILED@ $(libdir)/@WX_RESOURCES_MACOSX_COMPILED@
+ $(INSTALL_PROGRAM) $(build_libdir)/@WX_RESOURCES_MACOSX_ASCII@ $(libdir)/@WX_RESOURCES_MACOSX_ASCII@
+ $(INSTALL_PROGRAM) $(build_libdir)/@WX_RESOURCES_MACOSX_DATA@ $(libdir)/@WX_RESOURCES_MACOSX_DATA@
preinstall_gl: $(build_libdir)/@WX_TARGET_LIBRARY_GL@
@echo " "
@$(RM) $(libdir)/wx/include/@TOOLCHAIN_NAME@/wx/setup.h
@$(RM) $(bindir)/wx-config
@$(RM) $(bindir)/wx@TOOLCHAIN_NAME@-config
- @$(RM) $(datadir)/wx/afm/*
- @$(RM) $(datadir)/wx/gs_afm/*
+ @$(RM) $(datadir)/wx/$(VER_MAJMIN)/afm/*
+ @$(RM) $(datadir)/wx/$(VER_MAJMIN)/gs_afm/*
# FIXME: wxBase doesnt install these next 3 dirs.
- @-rmdir $(datadir)/wx/gs_afm
- @-rmdir $(datadir)/wx/afm
+ @-rmdir $(datadir)/wx/$(VER_MAJMIN)/gs_afm
+ @-rmdir $(datadir)/wx/$(VER_MAJMIN)/afm
+ @-rmdir $(datadir)/wx/$(VER_MAJMIN)
@-rmdir $(datadir)/wx
@echo " Removing headers..."
@list='$(HEADERS)'; for p in $$list; do \
@if test -d $(includedir)/wx/msw; then rmdir $(includedir)/wx/msw; fi
@if test -d $(includedir)/wx/html; then rmdir $(includedir)/wx/html; fi
@if test -d $(includedir)/wx/unix; then rmdir $(includedir)/wx/unix; fi
+ @if test -d $(includedir)/wx/univ; then rmdir $(includedir)/wx/univ; fi
@if test -d $(includedir)/wx/generic; then rmdir $(includedir)/wx/generic; fi
@if test -d $(includedir)/wx/protocol; then rmdir $(includedir)/wx/protocol; fi
@if test -d $(includedir)/wx; then rmdir $(includedir)/wx; fi
cp $(REGEXDIR)/*.ih $(DISTDIR)/src/regex
cp $(REGEXDIR)/*.c $(DISTDIR)/src/regex
cp $(REGEXDIR)/Makefile $(DISTDIR)/src/regex
+ cp $(REGEXDIR)/makefile.* $(DISTDIR)/src/regex
cp $(REGEXDIR)/COPYRIGHT $(DISTDIR)/src/regex
cp $(REGEXDIR)/README $(DISTDIR)/src/regex
cp $(REGEXDIR)/WHATSNEW $(DISTDIR)/src/regex
cp $(INCDIR)/wx/*.inl $(DISTDIR)/include/wx
cp $(INCDIR)/wx/*.cpp $(DISTDIR)/include/wx
cp $(INCDIR)/wx/generic/*.h $(DISTDIR)/include/wx/generic
- cp $(INCDIR)/wx/generic/*.xpm $(DISTDIR)/include/wx/generic
cp $(INCDIR)/wx/html/*.h $(DISTDIR)/include/wx/html
cp $(INCDIR)/wx/unix/*.h $(DISTDIR)/include/wx/unix
cp $(INCDIR)/wx/protocol/*.h $(DISTDIR)/include/wx/protocol
+ mkdir $(DISTDIR)/art
+ mkdir $(DISTDIR)/art/gtk
+ mkdir $(DISTDIR)/art/motif
+ cp $(WXDIR)/art/*.xpm $(DISTDIR)/art
+ cp $(WXDIR)/art/gtk/*.xpm $(DISTDIR)/art/gtk
+ cp $(WXDIR)/art/motif/*.xpm $(DISTDIR)/art/motif
mkdir $(DISTDIR)/src/common
mkdir $(DISTDIR)/src/generic
mkdir $(DISTDIR)/src/html
- mkdir $(DISTDIR)/src/html/bitmaps
mkdir $(DISTDIR)/src/$(TOOLKITDIR)
mkdir $(DISTDIR)/src/png
mkdir $(DISTDIR)/src/jpeg
cp $(GENDIR)/*.cpp $(DISTDIR)/src/generic
cp $(GENDIR)/*.mms $(DISTDIR)/src/generic
cp $(HTMLDIR)/*.cpp $(DISTDIR)/src/html
- cp $(HTMLDIR)/bitmaps/*.xpm $(DISTDIR)/src/html/bitmaps
cp $(PNGDIR)/*.h $(DISTDIR)/src/png
cp $(PNGDIR)/*.c $(DISTDIR)/src/png
cp $(PNGDIR)/README $(DISTDIR)/src/png
cp $(WXDIR)/src/wxBase*.dsp $(DISTDIR)
cp $(WXDIR)/src/wxBase*.dsw $(DISTDIR)
cp $(DOCDIR)/changes.txt $(DISTDIR)/CHANGES.txt
- cp $(DOCDIR)/install.txt $(DISTDIR)/README.txt
+ cp $(DOCDIR)/base/readme.txt $(DISTDIR)/README.txt
cp $(SRCDIR)/*.in $(DISTDIR)/src
cp $(WXDIR)/src/common/*.inc $(DISTDIR)/src/common
cp $(WXDIR)/src/common/base.rc $(DISTDIR)/src/common
GTK_DIST: ALL_GUI_DIST
cp $(WXDIR)/wxGTK.spec $(DISTDIR)
cp $(INCDIR)/wx/gtk/*.h $(DISTDIR)/include/wx/gtk
- cp $(INCDIR)/wx/gtk/*.xpm $(DISTDIR)/include/wx/gtk
cp $(GTKDIR)/files.lst $(DISTDIR)/src/gtk
cp $(GTKDIR)/*.cpp $(DISTDIR)/src/gtk
cp $(GTKDIR)/*.c $(DISTDIR)/src/gtk
cp $(INCDIR)/wx/msw/gnuwin32/gl/*.h $(DISTDIR)/include/wx/msw/gnuwin32/gl
cp $(INCDIR)/wx/msw/gnuwin32/gl/*.def $(DISTDIR)/include/wx/msw/gnuwin32/gl
cp $(INCDIR)/wx/msw/ole/*.h $(DISTDIR)/include/wx/msw/ole
+ mkdir $(DISTDIR)/src/msw/ole
+ cp $(MSWDIR)/files.lst $(DISTDIR)/src/msw
+ cp $(MSWDIR)/*.cpp $(DISTDIR)/src/msw
+ cp $(MSWDIR)/*.c $(DISTDIR)/src/msw
+ cp $(MSWDIR)/*.def $(DISTDIR)/src/msw
+ cp $(MSWDIR)/ole/*.cpp $(DISTDIR)/src/msw/ole
+MSW_ZIP_TEXT_DIST: ALL_GUI_DIST
+ cp $(WXDIR)/wxWINE.spec $(DISTDIR)
+ mkdir $(DISTDIR)/include/wx/msw
+ mkdir $(DISTDIR)/include/wx/msw/ctl3d
+ mkdir $(DISTDIR)/include/wx/msw/gnuwin32
+ mkdir $(DISTDIR)/include/wx/msw/gnuwin32/gl
+ mkdir $(DISTDIR)/include/wx/msw/ole
+ cp $(INCDIR)/wx/msw/*.h $(DISTDIR)/include/wx/msw
+ cp $(INCDIR)/wx/msw/*.rc $(DISTDIR)/include/wx/msw
+ cp $(INCDIR)/wx/msw/ctl3d/*.h $(DISTDIR)/include/wx/msw/ctl3d
+ cp $(INCDIR)/wx/msw/gnuwin32/*.h $(DISTDIR)/include/wx/msw/gnuwin32
+ cp $(INCDIR)/wx/msw/gnuwin32/gl/*.h $(DISTDIR)/include/wx/msw/gnuwin32/gl
+ cp $(INCDIR)/wx/msw/gnuwin32/gl/*.def $(DISTDIR)/include/wx/msw/gnuwin32/gl
+ cp $(INCDIR)/wx/msw/ole/*.h $(DISTDIR)/include/wx/msw/ole
+ mkdir $(DISTDIR)/src/msw
mkdir $(DISTDIR)/src/msw/ole
cp $(MSWDIR)/files.lst $(DISTDIR)/src/msw
cp $(MSWDIR)/*.cpp $(DISTDIR)/src/msw
cp $(MSWDIR)/*.c $(DISTDIR)/src/msw
cp $(MSWDIR)/*.def $(DISTDIR)/src/msw
cp $(MSWDIR)/ole/*.cpp $(DISTDIR)/src/msw/ole
+ cp $(SRCDIR)/*.* $(DISTDIR)/src
+ cp $(MSWDIR)/?ake*.* $(DISTDIR)/src/msw
UNIV_DIST: ALL_GUI_DIST
mkdir $(DISTDIR)/include/wx/univ
cp $(SAMPDIR)/minimal/*.xpm $(DISTDIR)/samples/minimal
cp $(SAMPDIR)/minimal/*.mms $(DISTDIR)/samples/minimal
+ mkdir $(DISTDIR)/samples/mobile
+ cp $(SAMPDIR)/mobile/Makefile.in $(DISTDIR)/samples/mobile
+ mkdir $(DISTDIR)/samples/mobile/wxedit
+ cp $(SAMPDIR)/mobile/wxedit/Makefile.in $(DISTDIR)/samples/mobile/wxedit
+ cp $(SAMPDIR)/mobile/wxedit/*.cpp $(DISTDIR)/samples/mobile/wxedit
+ cp $(SAMPDIR)/mobile/wxedit/*.h $(DISTDIR)/samples/mobile/wxedit
+
mkdir $(DISTDIR)/samples/dialup
cp $(SAMPDIR)/dialup/Makefile.in $(DISTDIR)/samples/dialup
cp $(SAMPDIR)/dialup/makefile.unx $(DISTDIR)/samples/dialup
mv wxDemos demos; \
fi
+# RR: Copy text and binary data separatly
+win-dist: MSW_ZIP_TEXT_DIST
+ @echo "*** Creating wxWindows ZIP distribution in $(DISTDIR)..."
+ @cd _dist_dir && mv $(DISTDIRNAME) wxMSW
+ @cd _dist_dir && zip -r -l ../$(WXARCHIVE_ZIP) *
+ cp $(INCDIR)/wx/msw/*.cur _dist_dir/wxMSW/include/wx/msw
+ cp $(INCDIR)/wx/msw/*.ico _dist_dir/wxMSW/include/wx/msw
+ cp $(INCDIR)/wx/msw/*.bmp _dist_dir/wxMSW/include/wx/msw
+ @cd _dist_dir && zip -r ../$(WXARCHIVE_ZIP) wxMSW/include/wx/msw/*.cur
+ @cd _dist_dir && zip -r ../$(WXARCHIVE_ZIP) wxMSW/include/wx/msw/*.ico
+ @cd _dist_dir && zip -r ../$(WXARCHIVE_ZIP) wxMSW/include/wx/msw/*.bmp
+
debian-dist: debian-native-dist debian-msw-dirs MSW_DIST
mkdir $(DISTDIR)/debian
-cp $(WXDIR)/debian/* $(DISTDIR)/debian