#----------------------------------------------------------------------- # Copyright (c) 2003 2004 Daan Leijen. # This file is distributed under the wxWindows library license. # See "license.txt" for more details. #----------------------------------------------------------------------- ifeq ($(RPM-SOURCE-DIR),) RPM-SOURCE-DIR=$(HOME)/rpm/SOURCES endif # main target all: wxcore #-------------------------------------------------------------------------- # Help #-------------------------------------------------------------------------- help: @echo "usage:" @echo " make [macros] [target]" @echo "" @echo "build:" @echo " all build the library (default target)" @echo " doc generate haddock documentation" @echo " install build and install the library" @echo " uninstall uninstall the library" @echo " install-files install, but do not register with the Haskell compiler" @echo "" @echo "distribution:" @echo " fulldist make a source, documentation, and binary distribution" @echo " srcdist make a source distribution (as a .zip file)" @echo " docdist make a documentation and samples zip file" @echo " bindist binaries, docs, and samples zip (windows distribution)" @echo " macdist installer for MacOS X (.dmg file) (includes docs and samples)" @echo " rpmdist unix RPM installer (no docs and samples included)" @echo "" @echo "maintenance:" @echo " clean remove object files and binaries" @echo " realclean remove all generated files (including documentation)" @echo " wx-clean clean the wx library only" @echo " wxcore-clean clean the wxcore library only" @echo " wxc-clean clean the wxc wrapper only" @echo "" @echo "macros:" @echo " DESTDIR= prefix the installation directories with " @echo " RPM-SOURCE-DIR= rpm sources directory [$(RPM-SOURCE-DIR)]" @echo "" depend: @echo "You do not need 'make depend' for wxHaskell ;-)" # system dependent stuff include config/config.mk # helper functions, see also for makefile implementation notes. include makefile.lib #-------------------------------------------------------------------------- # directories #-------------------------------------------------------------------------- WX-SOURCES= \ Graphics/UI/WX/Types \ Graphics/UI/WX/Attributes \ Graphics/UI/WX/Layout \ Graphics/UI/WX/Classes \ Graphics/UI/WX/Variable \ Graphics/UI/WX/Events \ Graphics/UI/WX/Window \ Graphics/UI/WX/TopLevelWindow \ Graphics/UI/WX/Frame \ Graphics/UI/WX/Media \ Graphics/UI/WX/Menu \ Graphics/UI/WX/Timer \ Graphics/UI/WX/Draw \ Graphics/UI/WX/Controls \ Graphics/UI/WX/Dialogs \ Graphics/UI/WX #-------------------------------------------------------------------------- # wxcore #-------------------------------------------------------------------------- WXCORE-SOURCES = \ Graphics/UI/WXCore/WxcClasses \ Graphics/UI/WXCore/WxcClassInfo \ Graphics/UI/WXCore/WxcDefs \ Graphics/UI/WXCore/Types \ Graphics/UI/WXCore/Defines \ Graphics/UI/WXCore/Draw \ Graphics/UI/WXCore/Image \ Graphics/UI/WXCore/Events \ Graphics/UI/WXCore/DragAndDrop \ Graphics/UI/WXCore/Frame \ Graphics/UI/WXCore/Layout \ Graphics/UI/WXCore/Process \ Graphics/UI/WXCore/Print \ Graphics/UI/WXCore/Dialogs \ Graphics/UI/WXCore/Controls \ Graphics/UI/WXCore/Db \ Graphics/UI/WXCore/OpenGL \ Graphics/UI/WXCore WXCORE-CORE-A-SOURCES = \ Graphics/UI/WXCore/WxcObject \ Graphics/UI/WXCore/WxcClassTypes \ Graphics/UI/WXCore/WxcTypes \ WXCORE-CORE-B-SOURCES = \ Graphics/UI/WXCore/WxcClassesAL WXCORE-CORE-C-SOURCES = \ Graphics/UI/WXCore/WxcClassesMZ WXCORE-GEN-SOURCES = \ Graphics/UI/WXCore/WxcClassTypes \ Graphics/UI/WXCore/WxcClassesAL \ Graphics/UI/WXCore/WxcClassesMZ \ Graphics/UI/WXCore/WxcClasses \ Graphics/UI/WXCore/WxcClassInfo \ Graphics/UI/WXCore/WxcDefs # all sources that generate stub files (ie. containing: foreign import "wrapper") WXCORE-STUBS = \ Graphics/UI/WXCore/Events #-------------------------------------------------------------------------- # wxdirect #-------------------------------------------------------------------------- WXD-SOURCES = \ MultiSet \ HaskellNames Types \ ParseEiffel ParseC \ Classes \ DeriveTypes \ CompileHeader \ CompileClassTypes \ CompileClassInfo \ CompileClasses \ CompileDefs \ CompileSTC \ Main #-------------------------------------------------------------------------- # wxc #-------------------------------------------------------------------------- WXC-CORE= \ ewxw_main extra wrapper \ eljevent eljmime \ treectrl image apppath db dragimage glcanvas graphicscontext sound managed \ mediactrl printout previewframe taskbaricon textstream stc WXC-EWXW= \ accelerator bitmap brush busyinfo button calendarctrl \ caret checkbox checklistbox choice clipboard coldata \ colour colourdlg combobox configbase control cursor \ dataformat datetime dc dcsvg dialog dirdlg dnd drawing \ filedialog filehist font fontdata fontdlg frame gauge \ grid helpcontroller icon image imagelist layoutconstraints \ listbox listctrl locale log mask mdi menu menubar \ messagedialog miniframe notebook palette panel pen \ printdlg printing process radiobox radiobutton rc region \ regioniter sash scrollbar scrolledwindow sizer \ slider spinctrl splitterwindow staticbox staticline \ statictext statusbar systemsettings textctrl timer \ toolbar validator window wizard \ findrepldlg artprov tipwnd icnbndl ctxhelp singleinst # unused: # treectrl WXC-SOURCES = \ $(WXC-CORE) $(patsubst %,elj%,$(WXC-EWXW)) WXC-SPECS-EIFFEL = \ wxc/eiffel/wxc_defs.e wxc/eiffel/wx_defs.e \ wxc/eiffel/stc.e WXC-SPECS-HEADER = \ wxc/include/wxc.h \ wxc/include/db.h wxc/include/glcanvas.h \ wxc/include/graphicscontext.h \ wxc/include/sound.h wxc/include/managed.h \ wxc/include/printout.h wxc/include/previewframe.h \ wxc/include/textstream.h \ wxc/include/wxc_glue.h # distributed in a source distribution WXC-SRCS=$(wildcard wxc/src/*.cpp) \ $(wildcard wxc/src/*.h)\ $(wildcard wxc/include/*.h)\ $(wildcard wxc/eiffel/*.e)\ wxc/src/wxc.rc \ $(wildcard wxc/wxc*.dsp) $(wildcard wxc/wxc*.dsw) #-------------------------------------------------------------------------- # wxhaskell project itself #-------------------------------------------------------------------------- WXHASKELL-SOURCES= \ Setup.lhs wxcore.cabal\ wx/Setup.lhs wx/wx.cabal wx/license.txt\ configure makefile makefile.lib \ bin/prologue-template.txt license.txt changes.txt \ bin/wxhaskell-spec-template \ bin/macosx-app-template bin/reimp.exe \ bin/macosx-builddmg bin/macosx-package \ bin/wxhaskell-register bin/wxhaskell-unregister \ bin/wxhaskell-register-template.bat bin/wxhaskell-unregister-template.bat bin/setcd SAMPLE-SOURCES= \ samples/wx/BouncingBalls.hs \ samples/wx/ByeDemo.hs \ samples/wx/Controls.hs \ samples/wx/CustomControl.hs \ samples/wx/DbBrowse.hs \ samples/wx/DbConsole.hs \ samples/wx/FileBrowse.hs \ samples/wx/Grid.hs \ samples/wx/HelloWorld.hs \ samples/wx/ImageViewer.hs \ samples/wx/Layout.hs \ samples/wx/ListCtrl.hs \ samples/wx/Minimal.hs \ samples/wx/Process.hs \ samples/wx/Paint.hs \ samples/wx/Print.hs \ samples/wx/TimeFlows.hs \ samples/wx/TimeFlowsEx.hs \ \ samples/wxcore/BouncingBalls.hs \ samples/wxcore/ByeDemo.hs \ samples/wxcore/HelloWorld.hs \ samples/wxcore/Minimal.hs \ samples/wxcore/Paint.hs \ samples/wxcore/ImageViewer.hs \ \ samples/bitmaps/computer.ico \ samples/bitmaps/disk.ico \ samples/bitmaps/eye.ico \ samples/bitmaps/f_closed.ico \ samples/bitmaps/f_open.ico \ samples/bitmaps/file.ico \ samples/bitmaps/fileopen16.png \ samples/bitmaps/hsicon.ico \ samples/bitmaps/wxwin16.png \ samples/bitmaps/wxwin.ico \ samples/bitmaps/desert.bmp \ \ samples/contrib/Camels.hs \ samples/contrib/PaintDirect.hs \ samples/contrib/NotebookRight.hs \ samples/contrib/GLCanvas.hs \ samples/contrib/GLMultiCanvas.hs\ \ bugs/FontFixed.hs\ bugs/SubMenu.hs\ bugs/StartStart.hs\ bugs/NonModalDialog.hs\ bugs/TextColor.hs\ #-------------------------------------------------------------------------- # The main targets. #-------------------------------------------------------------------------- .SUFFIXES: .hs .hi .o .p_hi .p_o .c .cpp .PHONY: all install uninstall install-files uninstall-files .PHONY: help doc webdoc clean realclean # global variables OUTDIR = dist # clean clean: wxc-clean wxd-clean wxcore-clean wx-clean realclean: wxcore-realclean -@$(call full-remove-dir,$(OUTDIR)) #-------------------------------------------------------------------------- # Install (unfortunately with extra clauses for the mac) #-------------------------------------------------------------------------- register: wxcore-register install: wxcore-install-files wxcore-register @echo ------------------------------------------ @echo Done with wxcore... @echo @echo Now please @echo cd wx @echo runhaskell Setup configure @echo runhaskell Setup build @echo runhaskell Setup install @echo ------------------------------------------ ifeq ($(TOOLKIT),mac) @$(call install-files,config,$(BINDIR),config/macosx-app) endif uninstall: wx-unregister wxcore-unregister uninstall-files uninstall-files: wx-uninstall-files wxcore-uninstall-files wxc-uninstall-files ifeq ($(TOOLKIT),mac) -@$(call uninstall-files,config,$(BINDIR),config/macosx-app) endif #-------------------------------------------------------------------------- # Distribution #-------------------------------------------------------------------------- .PHONY: dist srcdist bindist docdist dist-dirs macdist #.PHONY: wxc-dist wxd-dist wxcore-dist wx-dist #.PHONY: wxc-bindist wxcore-bindist wx-bindist WXHASKELLVER =wxhaskell-$(VERSION) WXCOREVER =wxcore-$(VERSION) BIN-VERSION =$(TOOLKIT)$(WXWIN-VERSION)-$(VERSION) REL-VERSION =$(TOOLKIT)$(WXWIN-VERSION)-$(HCBASENAME)$(HCVERSION)-$(VERSION)-$(RELEASE) DIST-OUTDIR =$(OUTDIR) DIST-DOC =$(DIST-OUTDIR)/wxhaskell-doc-$(VERSION).zip DIST-SRC =$(DIST-OUTDIR)/wxhaskell-src-$(VERSION).zip DIST-HACKAGE =$(DIST-OUTDIR)/wxcore-$(VERSION).tar.gz DIST-BIN =$(DIST-OUTDIR)/wxhaskell-bin-$(REL-VERSION).zip DISTS =$(DIST-DOC) $(DIST-SRC) $(DIST-BIN) $(DIST-HACKAGE) SRCDIST-OUTDIR =$(DIST-OUTDIR)/srcdist SRCDIST-SRCDIR =$(SRCDIST-OUTDIR)/$(WXHASKELLVER) HACKAGEDIST-OUTDIR =$(DIST-OUTDIR)/hackagedist HACKAGEDIST-SRCDIR =$(HACKAGEDIST-OUTDIR)/$(WXCOREVER) DOCDIST-OUTDIR =$(DIST-OUTDIR)/docdist DOCDIST-SRCDIR =$(DOCDIST-OUTDIR)/$(WXHASKELLVER) BINDIST-OUTDIR =$(DIST-OUTDIR)/bindist BINDIST-LIBDIR =$(BINDIST-OUTDIR)/$(WXHASKELLVER)/lib BINDIST-DLLDIR =$(BINDIST-OUTDIR)/$(WXHASKELLVER)/lib BINDIST-BINDIR =$(BINDIST-OUTDIR)/$(WXHASKELLVER)/bin # full distribution fulldist: dist-dirs all srcdist bindist docdist dist-dirs: @$(call ensure-dirs-of-files,$(DISTS)) dist-clean: srcdist-clean bindist-clean -@$(call safe-remove-files,$(DISTS)) # source distribution srcdist: srcdist-clean dist-dirs wxc-dist wxd-dist wxcore-dist wx-dist @$(call cp-srcdist, $(WXHASKELL-SOURCES)) @$(call cp-srcdist, $(SAMPLE-SOURCES)) @echo zipping: $(DIST-SRC) @$(CD) $(SRCDIST-OUTDIR) && $(call zip-add-rec,$(DIST-SRC),$(WXHASKELLVER)) @$(CD) $(SRCDIST-OUTDIR) && $(call tgz-add-rec,$(basename $(DIST-SRC)).tar.gz,$(WXHASKELLVER)) srcdist-clean: -@$(call full-remove-dir,$(SRCDIST-OUTDIR)) -@$(call safe-remove-file,$(DIST-SRC)) # generic binary distribution as a zip bindist: bindist-clean dist-dirs wxc-bindist wxcore-bindist wx-bindist docdist @$(call cp-bindist,config,$(BINDIST-BINDIR),config/wxcore.pkg config/wx.pkg) ifeq ($(TOOLKIT),msw) @$(call cp-bindist,config,$(BINDIST-BINDIR),config/wxcore-partial.pkg config/wx-partial.pkg) @$(call cp-bindist,config,$(BINDIST-BINDIR),config/wxhaskell-register.bat config/wxhaskell-unregister.bat config/setcd) @$(call cp-bindist,,$(BINDIST-BINDIR),README.txt) else @$(call cp-bindist,bin,$(BINDIST-BINDIR),bin/wxhaskell-register bin/wxhaskell-unregister) endif ifeq ($(TOOLKIT),mac) @$(call cp-bindist,config,$(BINDIST-BINDIR),config/macosx-app) endif @$(RM) $(DIST-BIN) @$(CP) $(DIST-DOC) $(DIST-BIN) @$(CD) $(BINDIST-OUTDIR) && $(call zip-add-rec,$(DIST-BIN),*) bindist-clean: -@$(call full-remove-dir,$(BINDIST-OUTDIR)) -@$(call safe-remove-file,$(DIST-BIN)) # specific binary distributions # RPM dist rpmdist: srcdist $(CP) -f $(DIST-SRC) $(RPM-SOURCE-DIR) rpmbuild -ba config/wxhaskell.spec # DEB dist DEBIAN_DIST=dist/debian DEBIAN_INSTALL_LOCACTION=$(DEBIAN_DIST)/usr/local DEB_NAME=$(DIST-OUTDIR)/wxhaskell$(ARCHITECTURE)-bin-$(REL-VERSION).deb DEB_DOC=$(DEBIAN_DIST)/usr/local/share # MAC dist WXHASKELLINS=wxhaskell WXHASKELLDMG=$(DIST-OUTDIR)/wxhaskell-bin-$(ARCHITECTURE)-$(REL-VERSION).dmg RESOURCEDIR=$(OUTDIR)/macdist/recources PACKAGEDIR=$(OUTDIR)/macdist/$(WXHASKELLINS) INFOFILE=$(PACKAGEDIR).info macdist: docdist bindist @$(call ensure-dir,$(RESOURCEDIR)) @$(call ensure-dir,$(PACKAGEDIR)) # copy packages @$(call cp-echo,$(BINDIST-BINDIR)/wxcore.pkg,$(RESOURCEDIR)/wxcore.pkg) @$(call cp-echo,$(BINDIST-BINDIR)/wx.pkg,$(RESOURCEDIR)/wx.pkg) # copy post install scripts @$(call cp-echo,config/macosx-postinstall,$(RESOURCEDIR)/$(WXHASKELLINS).post_install) @$(call cp-echo,config/macosx-postinstall,$(RESOURCEDIR)/$(WXHASKELLINS).post_upgrade) # copy info file for installer @$(call cp-echo,config/macosx-install.info,$(INFOFILE)) # license and readme @$(call cp-echo,license.txt,$(RESOURCEDIR)/License.txt) @echo "See for more information." > $(RESOURCEDIR)/Readme.txt # create package chmod u+x bin/macosx-package bin/macosx-package $(BINDIST-OUTDIR)/$(WXHASKELLVER) $(INFOFILE) -d $(PACKAGEDIR) -r $(RESOURCEDIR) $(CP) -R $(DOCDIST-SRCDIR)/doc $(PACKAGEDIR) $(CP) -R $(DOCDIST-SRCDIR)/samples $(PACKAGEDIR) $(CP) -R $(DOCDIST-SRCDIR)/bugs $(PACKAGEDIR) chmod u+x bin/macosx-builddmg bin/macosx-builddmg $(PACKAGEDIR) $(OUTDIR) @mv -f $(OUTDIR)/$(WXHASKELLINS).dmg $(WXHASKELLDMG) echo "created: $(WXHASKELLDMG)" #-------------------------------------------------------------------------- # wxdirect: generates haskell marshall modules #-------------------------------------------------------------------------- WXD = wxdirect WXD-SRCDIR = $(WXD)/src WXD-OUTDIR = $(OUTDIR)/$(WXD) WXD-EXE = $(WXD-OUTDIR)/$(WXD)$(EXE) WXD-OBJS =$(call make-objs, $(WXD-OUTDIR), $(WXD-SOURCES)) WXD-DEPS =$(call make-deps, $(WXD-OUTDIR), $(WXD-SOURCES)) WXD-HS =$(call make-hs, $(WXD-SRCDIR), $(WXD-SOURCES)) WXD-FLAGS = --wxc $(WXC) -o $(WXCORE-SRCDIR)/$(WXCORE-HPATH) # Build executable wxd: wxd-dirs $(WXD-EXE) wxd-dirs: @$(call ensure-dirs-of-files,$(WXD-OBJS)) wxd-clean: -@$(call full-remove-dir,$(WXD-OUTDIR)) # source dist wxd-dist: $(WXD-HS) @$(call cp-srcdist, $^) # build executable $(WXD-EXE): $(WXD-OBJS) $(HC) $(HCFLAGS) $(PKG-CONTAINERS) $(PKG-PARSEC) $(PKG-TIME) -o $@ $^ # create an object file from source files. $(WXD-OBJS): $(WXD-OUTDIR)/%.o: $(WXD-SRCDIR)/%.hs @$(call compile-hs,$@,$<,$(HCFLAGS) $(PKG-PARSEC) $(PKG-TIME),$(WXD-OUTDIR),-i$(WXD-SRCDIR)) # automatically include all dependency information. -include $(WXD-DEPS) #-------------------------------------------------------------------------- # WXCORE: the direct haskell wrapper of the wxc api #-------------------------------------------------------------------------- WXCORE =wxcore WXCORE-PKG =config/$(WXCORE).pkg WXCORE-SRCDIR =$(WXCORE)/src WXCORE-HPATH =Graphics/UI/WXCore WXCORE-OUTDIR =$(OUTDIR)/wxcore WXCORE-IMPORTSDIR=$(WXCORE-OUTDIR)/imports WXCORE-HSDIRS =-i$(WXCORE-SRCDIR) -i$(WXD-SRCDIR) WXCORE-OBJ =$(WXCORE-OUTDIR)/$(WXCORE).o WXCORE-LIB =$(WXCORE-OUTDIR)/lib$(WXCORE).a WXCORE-CORE-A-OBJ =$(WXCORE-OUTDIR)/$(WXCORE)0.o WXCORE-CORE-A-LIB =$(WXCORE-OUTDIR)/lib$(WXCORE)0.a WXCORE-CORE-B-OBJ =$(WXCORE-OUTDIR)/$(WXCORE)1.o WXCORE-CORE-B-LIB =$(WXCORE-OUTDIR)/lib$(WXCORE)1.a WXCORE-CORE-C-OBJ =$(WXCORE-OUTDIR)/$(WXCORE)2.o WXCORE-CORE-C-LIB =$(WXCORE-OUTDIR)/lib$(WXCORE)2.a WXCORE-LIBS =$(WXCORE-CORE-A-LIB) $(WXCORE-CORE-A-OBJ) \ $(WXCORE-CORE-B-LIB) $(WXCORE-CORE-B-OBJ) \ $(WXCORE-CORE-C-LIB) $(WXCORE-CORE-C-OBJ) \ $(WXCORE-LIB) $(WXCORE-OBJ) WXCORE-OBJS =$(call make-objs, $(WXCORE-IMPORTSDIR), $(WXCORE-SOURCES)) WXCORE-CORE-A-OBJS=$(call make-objs, $(WXCORE-IMPORTSDIR), $(WXCORE-CORE-A-SOURCES)) WXCORE-CORE-B-OBJS=$(call make-objs, $(WXCORE-IMPORTSDIR), $(WXCORE-CORE-B-SOURCES)) WXCORE-CORE-C-OBJS=$(call make-objs, $(WXCORE-IMPORTSDIR), $(WXCORE-CORE-C-SOURCES)) WXCORE-STUB-OBJS=$(call make-objs, $(WXCORE-IMPORTSDIR), $(patsubst %,%_stub,$(WXCORE-STUBS))) WXCORE-PROF-OBJ =$(WXCORE-OUTDIR)/$(WXCORE).p_o WXCORE-PROF-LIB =$(WXCORE-OUTDIR)/lib$(WXCORE)_p.a WXCORE-CORE-A-PROF-OBJ =$(WXCORE-OUTDIR)/$(WXCORE)0.p_o WXCORE-CORE-A-PROF-LIB =$(WXCORE-OUTDIR)/lib$(WXCORE)0_p.a WXCORE-CORE-B-PROF-OBJ =$(WXCORE-OUTDIR)/$(WXCORE)1.p_o WXCORE-CORE-B-PROF-LIB =$(WXCORE-OUTDIR)/lib$(WXCORE)1_p.a WXCORE-CORE-C-PROF-OBJ =$(WXCORE-OUTDIR)/$(WXCORE)2.p_o WXCORE-CORE-C-PROF-LIB =$(WXCORE-OUTDIR)/lib$(WXCORE)2_p.a WXCORE-PROF-LIBS =$(WXCORE-CORE-A-PROF-LIB) $(WXCORE-CORE-A-PROF-OBJ) \ $(WXCORE-CORE-B-PROF-LIB) $(WXCORE-CORE-B-PROF-OBJ) \ $(WXCORE-CORE-C-PROF-LIB) $(WXCORE-CORE-C-PROF-OBJ) \ $(WXCORE-PROF-LIB) $(WXCORE-PROF-OBJ) WXCORE-PROF-OBJS =$(call make-prof-objs, $(WXCORE-IMPORTSDIR), $(WXCORE-SOURCES)) WXCORE-CORE-A-PROF-OBJS=$(call make-prof-objs, $(WXCORE-IMPORTSDIR), $(WXCORE-CORE-A-SOURCES)) WXCORE-CORE-B-PROF-OBJS=$(call make-prof-objs, $(WXCORE-IMPORTSDIR), $(WXCORE-CORE-B-SOURCES)) WXCORE-CORE-C-PROF-OBJS=$(call make-prof-objs, $(WXCORE-IMPORTSDIR), $(WXCORE-CORE-C-SOURCES)) WXCORE-STUB-PROF-OBJS=$(call make-prof-objs, $(WXCORE-IMPORTSDIR), $(patsubst %,%_stub,$(WXCORE-STUBS))) WXCORE-CORE-SOURCES=$(WXCORE-CORE-A-SOURCES) $(WXCORE-CORE-B-SOURCES) $(WXCORE-CORE-C-SOURCES) WXCORE-CORE-OBJS =$(WXCORE-CORE-A-OBJS) $(WXCORE-CORE-B-OBJS) $(WXCORE-CORE-C-OBJS) WXCORE-DEPS =$(call make-deps, $(WXCORE-IMPORTSDIR), $(WXCORE-CORE-SOURCES) $(WXCORE-SOURCES)) WXCORE-HIS =$(call make-his, $(WXCORE-IMPORTSDIR), $(WXCORE-CORE-SOURCES) $(WXCORE-SOURCES)) WXCORE-PROF-HIS =$(call make-prof-his, $(WXCORE-IMPORTSDIR), $(WXCORE-CORE-SOURCES) $(WXCORE-SOURCES)) WXCORE-HS =$(call make-hs, $(WXCORE-SRCDIR), $(WXCORE-CORE-SOURCES) $(WXCORE-SOURCES)) WXCORE-GEN-HS =$(call make-hs, $(WXCORE-SRCDIR), $(WXCORE-GEN-SOURCES)) WXCORE-NONGEN-HS=$(filter-out $(WXCORE-GEN-HS),$(WXCORE-HS)) WXCORE-BINS =$(WXCORE-HIS) $(WXCORE-LIBS) WXCORE-PROF-BINS =$(WXCORE-PROF-HIS) $(WXCORE-PROF-LIBS) WXCORE-DOCS =$(filter-out $(WXCORE-SRCDIR)/$(WXCORE-HPATH)/IntMap.hs,$(WXCORE-HS)) WXCORE-HCFLAGS =$(HCFLAGS) $(PKG-BYTESTRING) $(PKG-CONTAINERS) $(PKG-STM) -package-name $(WXCORE)-$(VERSION) # build main library ifdef ENABLE-PROF wxcore: wxcore-only wxcore-prof else wxcore: wxcore-only endif wxcore-only: wxd wxc wxcore-dirs $(WXCORE-LIBS) wxcore-dirs: @$(call ensure-dirs-of-files,$(WXCORE-OBJS)) wxcore-prof: wxd wxc wxcore-prof-dirs $(WXCORE-PROF-LIBS) wxcore-prof-dirs: @$(call ensure-dirs-of-files,$(WXCORE-PROF-OBJS)) wxcore-clean: -@$(call full-remove-dir,$(WXCORE-OUTDIR)) wxcore-realclean: wxcore-clean -@$(call safe-remove-files,$(WXCORE-GEN-HS)) # source dist wxcore-dist: $(WXCORE-NONGEN-HS) @$(call cp-srcdist, $^) # bindist wxcore-bindist: wxcore @$(call cp-bindist,$(WXCORE-OUTDIR),$(BINDIST-LIBDIR),$(WXCORE-BINS)) ifdef ENABLE-PROF @$(call cp-bindist,$(WXCORE-OUTDIR),$(BINDIST-LIBDIR),$(WXCORE-PROF-BINS)) endif # install wxcore-register: $(call install-pkg ,$(LIBDIR),$(WXCORE-PKG)) wxcore-install-files: wxcore wxc-install-files @$(call install-files,$(WXCORE-OUTDIR),$(LIBDIR),$(WXCORE-BINS)) ifdef ENABLE-PROF @$(call install-files,$(WXCORE-OUTDIR),$(LIBDIR),$(WXCORE-PROF-BINS)) endif @$(call install-files,$(dir $(WXCORE-PKG)),$(LIBDIR),$(WXCORE-PKG)) wxcore-unregister: -@$(call uninstall-pkg ,$(WXCORE)) wxcore-uninstall-files: -@$(call uninstall-files,$(WXCORE-OUTDIR),$(LIBDIR),$(WXCORE-BINS)) ifdef ENABLE-PROF -@$(call uninstall-files,$(WXCORE-OUTDIR),$(LIBDIR),$(WXCORE-PROF-BINS)) endif -@$(call uninstall-files,$(dir $(WXCORE-PKG)),$(LIBDIR),$(WXCORE-PKG)) # build marshall modules $(WXCORE-SRCDIR)/$(WXCORE-HPATH)/WxcClassTypes.hs: $(WXD-EXE) $(WXC-SPECS-HEADER) $(WXD-EXE) -t $(WXD-FLAGS) $(word 1,$(WXC-SPECS-HEADER)) $(WXCORE-SRCDIR)/$(WXCORE-HPATH)/WxcDefs.hs: $(WXD-EXE) $(WXC-SPECS-EIFFEL) $(WXD-EXE) -d $(WXD-FLAGS) $(WXC-SPECS-EIFFEL) $(WXCORE-SRCDIR)/$(WXCORE-HPATH)/WxcClassInfo.hs: $(WXD-EXE) $(WXC-SPECS-HEADER) $(WXD-EXE) -i $(WXD-FLAGS) $(word 1,$(WXC-SPECS-HEADER)) $(WXCORE-SRCDIR)/$(WXCORE-HPATH)/WxcClassesAL.hs: $(WXCORE-SRCDIR)/$(WXCORE-HPATH)/WxcClasses.hs $(WXCORE-SRCDIR)/$(WXCORE-HPATH)/WxcClassesMZ.hs: $(WXCORE-SRCDIR)/$(WXCORE-HPATH)/WxcClasses.hs $(WXCORE-SRCDIR)/$(WXCORE-HPATH)/WxcClasses.hs: $(WXD-EXE) $(WXC-SPECS-HEADER) $(WXD-EXE) -c $(WXD-FLAGS) $(word 1,$(WXC-SPECS-HEADER)) # build ghci object files $(WXCORE-OBJ): $(WXCORE-OBJS) $(WXCORE-STUB-OBJS) $(call combine-objs,$@,$^) $(WXCORE-CORE-A-OBJ): $(WXCORE-CORE-A-OBJS) $(call combine-objs,$@,$^) $(WXCORE-CORE-B-OBJ): $(WXCORE-CORE-B-OBJS) $(call combine-objs,$@,$^) $(WXCORE-CORE-C-OBJ): $(WXCORE-CORE-C-OBJS) $(call combine-objs,$@,$^) ifdef ENABLE-SPLITOBJS # build a library $(WXCORE-LIB): $(WXCORE-OBJS) $(WXCORE-STUB-OBJS) $(call make-archive-of-splitobjs,$@,$(WXCORE-OBJS)) $(call make-archive,$@,$(WXCORE-STUB-OBJS)) $(WXCORE-CORE-A-LIB): $(WXCORE-CORE-A-OBJS) $(call make-archive,$@,$(filter %WxcTypes.o,$^)) $(call make-archive-of-splitobjs,$@,$(filter-out %WxcTypes.o,$^)) $(WXCORE-CORE-B-LIB): $(WXCORE-CORE-B-OBJS) $(call make-archive-of-splitobjs,$@,$^) $(WXCORE-CORE-C-LIB): $(WXCORE-CORE-C-OBJS) $(call make-archive-of-splitobjs,$@,$^) else $(WXCORE-LIB): $(WXCORE-OBJS) $(WXCORE-STUB-OBJS) $(call make-archive,$@,$^) $(WXCORE-CORE-A-LIB): $(WXCORE-CORE-A-OBJS) $(call make-archive,$@,$^) $(WXCORE-CORE-B-LIB): $(WXCORE-CORE-B-OBJS) $(call make-archive,$@,$^) $(WXCORE-CORE-C-LIB): $(WXCORE-CORE-C-OBJS) $(call make-archive,$@,$^) endif # create an object file from source files. $(WXCORE-CORE-A-OBJS) $(WXCORE-CORE-B-OBJS) $(WXCORE-CORE-C-OBJS) $(WXCORE-OBJS): $(WXCORE-IMPORTSDIR)/%.o: $(WXCORE-SRCDIR)/%.hs @$(call compile-hs,$@,$<,$(WXCORE-HCFLAGS) -Iwxc/include,$(WXCORE-IMPORTSDIR),$(WXCORE-HSDIRS) ) $(WXCORE-STUB-OBJS): $(WXCORE-IMPORTSDIR)/%_stub.o: $(WXCORE-SRCDIR)/%.hs $(HC) -c $(basename $@).c # profiling version of above targets $(WXCORE-PROF-OBJ): $(WXCORE-PROF-OBJS) $(WXCORE-STUB-PROF-OBJS) $(call combine-objs,$@,$^) $(WXCORE-CORE-A-PROF-OBJ): $(WXCORE-CORE-A-PROF-OBJS) $(call combine-objs,$@,$^) $(WXCORE-CORE-B-PROF-OBJ): $(WXCORE-CORE-B-PROF-OBJS) $(call combine-objs,$@,$^) $(WXCORE-CORE-C-PROF-OBJ): $(WXCORE-CORE-C-PROF-OBJS) $(call combine-objs,$@,$^) ifdef ENABLE-SPLITOBJS $(WXCORE-PROF-LIB): $(WXCORE-PROF-OBJS) $(WXCORE-STUB-PROF-OBJS) $(call make-archive-of-splitobjs,$@,$(WXCORE-PROF-OBJS)) $(call make-archive,$@,$(WXCORE-STUB-PROF-OBJS)) $(WXCORE-CORE-A-PROF-LIB): $(WXCORE-CORE-A-PROF-OBJS) $(call make-archive,$@,$(filter %WxcTypes.p_o,$^)) $(call make-archive-of-splitobjs,$@,$(filter-out %WxcTypes.p_o,$^)) $(WXCORE-CORE-B-PROF-LIB): $(WXCORE-CORE-B-PROF-OBJS) $(call make-archive-of-splitobjs,$@,$^) $(WXCORE-CORE-C-PROF-LIB): $(WXCORE-CORE-C-PROF-OBJS) $(call make-archive-of-splitobjs,$@,$^) else $(WXCORE-PROF-LIB): $(WXCORE-PROF-OBJS) $(WXCORE-STUB-PROF-OBJS) $(call make-archive,$@,$^) $(WXCORE-CORE-A-PROF-LIB): $(WXCORE-CORE-A-PROF-OBJS) $(call make-archive,$@,$^) $(WXCORE-CORE-B-PROF-LIB): $(WXCORE-CORE-B-PROF-OBJS) $(call make-archive,$@,$^) $(WXCORE-CORE-C-PROF-LIB): $(WXCORE-CORE-C-PROF-OBJS) $(call make-archive,$@,$^) endif $(WXCORE-CORE-A-PROF-OBJS) $(WXCORE-CORE-B-PROF-OBJS) $(WXCORE-CORE-C-PROF-OBJS) $(WXCORE-PROF-OBJS): $(WXCORE-IMPORTSDIR)/%.p_o: $(WXCORE-SRCDIR)/%.hs @$(call compile-prof-hs,$@,$<,$(WXCORE-HCFLAGS) $(HC-PROF-FLAGS) -Iwxc/include,$(WXCORE-IMPORTSDIR),$(WXCORE-HSDIRS) ) $(WXCORE-STUB-PROF-OBJS): $(WXCORE-IMPORTSDIR)/%_stub.p_o: $(WXCORE-SRCDIR)/%.hs $(HC) -c $(basename $@).c # automatically include all dependency information. -include $(WXCORE-DEPS) #-------------------------------------------------------------------------- # WX: the medium level abstraction on wxcore #-------------------------------------------------------------------------- WX =wx WX-SRCDIR =$(WX)/src WX-PKG =config/$(WX).pkg WX-OUTDIR =$(OUTDIR)/$(WX) WX-IMPORTSDIR =$(WX-OUTDIR)/imports WX-OBJ =$(WX-OUTDIR)/$(WX).o WX-LIB =$(WX-OUTDIR)/lib$(WX).a WX-LIBS =$(WX-LIB) $(WX-OBJ) WX-PROF=BJ =$(WX-OUTDIR)/$(WX).p_o WX-PROF-LIB =$(WX-OUTDIR)/lib$(WX)_p.a WX-PROF-LIBS =$(WX-PROF-LIB) $(WX-PROF-OBJ) WX-OBJS =$(call make-objs, $(WX-IMPORTSDIR), $(WX-SOURCES)) WX-PROF-OBJS =$(call make-prof-objs, $(WX-IMPORTSDIR), $(WX-SOURCES)) WX-DEPS =$(call make-deps, $(WX-IMPORTSDIR), $(WX-SOURCES)) WX-HIS =$(call make-his, $(WX-IMPORTSDIR), $(WX-SOURCES)) WX-PROF-HIS =$(call make-prof-his, $(WX-IMPORTSDIR), $(WX-SOURCES)) WX-HS =$(call make-hs, $(WX-SRCDIR), $(WX-SOURCES)) WX-DOCS =$(WX-HS) WX-BINS =$(WX-HIS) $(WX-LIBS) WX-PROF-BINS =$(WX-PROF-HIS) $(WX-PROF-LIBS) WX-HCFLAGS =$(HCFLAGS) $(PKG-STM) -package-name $(WX)-$(VERSION) -package $(WXCORE)-$(VERSION) WX-HSDIRS =-i$(WX-SRCDIR) # build main library ifdef ENABLE-PROF wx: wx-only wx-prof else wx: wx-only endif wx-only: wx-dirs $(WX-LIBS) wx-install: wx-install-files wx-register wx-dirs: @$(call ensure-dirs-of-files,$(WX-OBJS)) wx-prof: wxd wxc wx-prof-dirs $(WX-PROF-LIBS) wx-prof-dirs: @$(call ensure-dirs-of-files,$(WX-PROF-OBJS)) wx-clean: -@$(call full-remove-dir,$(WX-OUTDIR)) # source dist wx-dist: $(WX-HS) @$(call cp-srcdist, $^) # bindist wx-bindist: wx @$(call cp-bindist,$(WX-OUTDIR),$(BINDIST-LIBDIR),$(WX-BINS)) ifdef ENABLE-PROF @$(call cp-bindist,$(WX-OUTDIR),$(BINDIST-LIBDIR),$(WX-PROF-BINS)) endif # install wx-register: @$(call install-pkg ,$(LIBDIR),$(WX-PKG)) wx-install-files: wx-only @$(call install-files,$(WX-OUTDIR),$(LIBDIR),$(WX-BINS)) ifdef ENABLE-PROF @$(call install-files,$(WX-OUTDIR),$(LIBDIR),$(WX-PROF-BINS)) endif @$(call install-files,$(dir $(WX-PKG)),$(LIBDIR),$(WX-PKG)) wx-unregister: -@$(call uninstall-pkg ,$(WX)) wx-uninstall-files: -@$(call uninstall-files,$(WX-OUTDIR),$(LIBDIR),$(WX-BINS)) ifdef ENABLE-PROF -@$(call uninstall-files,$(WX-OUTDIR),$(LIBDIR),$(WX-PROF-BINS)) endif -@$(call uninstall-files,$(dir $(WX-PKG)),$(LIBDIR),$(WX-PKG)) # build ghci object files $(WX-OBJ): $(WX-OBJS) $(call combine-objs,$@,$^) # build a library $(WX-LIB): $(WX-OBJS) ifdef ENABLE-SPLITOBJS $(call make-archive-of-splitobjs,$@,$^) else $(call make-archive,$@,$^) endif # create an object file from source files. $(WX-OBJS): $(WX-IMPORTSDIR)/%.o: $(WX-SRCDIR)/%.hs @$(call compile-hs,$@,$<,$(WX-HCFLAGS),$(WX-IMPORTSDIR),$(WX-HSDIRS)) # profiling version of above targets $(WX-PROF-OBJ): $(WX-PROF-OBJS) $(call combine-objs,$@,$^) $(WX-PROF-LIB): $(WX-PROF-OBJS) ifdef ENABLE-SPLITOBJS $(call make-archive-of-splitobjs,$@,$^) else $(call make-archive,$@,$^) endif $(WX-PROF-OBJS): $(WX-IMPORTSDIR)/%.p_o: $(WX-SRCDIR)/%.hs @$(call compile-prof-hs,$@,$<,$(WX-HCFLAGS) $(HC-PROF-FLAGS),$(WX-IMPORTSDIR),$(WX-HSDIRS)) # automatically include all dependency information. -include $(WX-DEPS) #-------------------------------------------------------------------------- # WXC: the C wrapper of the (C++) wxWindows API # # $(WXC-LIBNAME) is set in config/config.mk as it can be # either "wxc" or "wxcd" for a debug version. #-------------------------------------------------------------------------- WXC =wxc WXC-OUTDIR =$(OUTDIR)/$(WXC) WXC-SRCDIR =$(WXC)/src WXC-INCDIR =$(WXC)/include WXC-ARCHIVE =$(WXC-OUTDIR)/lib$(WXC-LIBNAME)-$(BIN-VERSION).a WXC-LIB =$(WXC-OUTDIR)/$(LIB)$(WXC-LIBNAME)-$(BIN-VERSION)$(DLL) WXC-OBJS =$(call make-objs, $(WXC-OUTDIR), $(WXC-SOURCES)) WXC-DEPS =$(call make-deps, $(WXC-OUTDIR), $(WXC-SOURCES)) WXC-LIBS =$(WXWIN-LIBS) WXC-CXXFLAGS =$(WXWIN-CXXFLAGS) $(WXC-CONTRIB) -fPIC -I$(WXC-INCDIR) wxc: wxc-dirs $(WXC-LIB) wxc-dirs: @$(call ensure-dirs-of-files,$(WXC-OBJS)) wxc-clean: -@$(call full-remove-dir,$(WXC-OUTDIR)) wxc-compress: wxc @$(call run-compress,$(WXC-LIB)) # source dist wxc-dist: $(WXC-SRCS) @$(call cp-srcdist, $(WXC-SRCS)) # binary distribution. A complication is that sometimes wxWindows is in a separate dll # and sometimes it is statically linked into wxc.dll (as with microsoft visual c++). wxc-bindist: wxc-compress @$(call cp-bindist,$(dir $(WXC-LIB)),$(BINDIST-DLLDIR),$(WXC-LIB)) ifeq ($(DLL),.dll) @$(call cp-bindist,$(dir $(WXC-ARCHIVE)),$(BINDIST-LIBDIR),$(WXC-ARCHIVE)) endif ifneq ($(WXWIN-REZFILE),) @$(call cp-bindist,$(dir $(WXWIN-REZFILE)),$(BINDIST-DLLDIR),$(basename $(WXWIN-REZFILE)).rsrc) @$(call cp-bindist,$(dir $(WXWIN-REZFILE)),$(BINDIST-DLLDIR),$(basename $(WXWIN-REZFILE)).r) endif # install wxc-install-files: wxc-compress @$(call install-files,$(WXC-OUTDIR),$(LIBDIR),$(WXC-LIB)) ifeq ($(DLL),.dll) @$(call install-files,$(WXC-OUTDIR),$(LIBDIR),$(WXC-ARCHIVE)) endif ifneq ($(WXWIN-REZFILE),) @$(call install-files,$(dir $(WXWIN-REZFILE)),$(LIBDIR),$(basename $(WXWIN-REZFILE)).rsrc) @$(call install-files,$(dir $(WXWIN-REZFILE)),$(LIBDIR),$(basename $(WXWIN-REZFILE)).r) endif wxc-uninstall-files: -@$(call uninstall-files,$(WXC-OUTDIR),$(LIBDIR),$(WXC-LIB) $(WXC-ARCHIVE)) ifneq ($(WXWIN-REZFILE),) -@$(call uninstall-files,$(dir $(WXWIN-REZFILE)),$(LIBDIR),$(basename $(WXWIN-REZFILE)).rsrc) -@$(call uninstall-files,$(dir $(WXWIN-REZFILE)),$(LIBDIR),$(basename $(WXWIN-REZFILE)).r) endif # dynamic link library on mingw32/cygwin: generates wxc.dll and a libwxc.a import library ifeq ($(WITHMSC),yes) # it must be generated already else $(basename $(WXC-LIB)).dll: $(WXC-OBJS) $(CXX) -shared -o $@ $^ $(WXC-LIBS) -Wl,--output-def,$(WXC-OUTDIR)/$(WXC).def,--out-implib,$(WXC-ARCHIVE) endif # dynamic link library on unix: generates single .so file $(basename $(WXC-LIB)).so: $(WXC-OBJS) $(CXX) -shared -o $@ $^ $(WXC-LIBS) -Wl --soname=$(SHARED-PREFIX)$(notdir $@) # dynamic link library on macOSX: generates single .so file $(basename $(WXC-LIB)).dylib: $(WXC-OBJS) $(CXX) -dynamiclib -install_name $(SHARED-PREFIX)$(notdir $@) -undefined suppress -flat_namespace -o $@ $^ $(filter-out %.a,$(WXC-LIBS)) # create an object file from source files $(WXC-OBJS): $(WXC-OUTDIR)/%.o: $(WXC-SRCDIR)/%.cpp @$(call compile-c,$@,$<,$(WXC-CXXFLAGS)) # automatically include dependencies -include $(WXC-DEPS) # Currently, wxstc always generates same files. So we comment out this part. #-------------------------------------------------------------------------- # wxSTC: the C wrapper of wxSTC #-------------------------------------------------------------------------- # # WXSTC-WRAPPER = \ # $(WXC-SRCDIR)/stc_gen.cpp \ # $(WXC-INCDIR)/stc_gen.h # # wxstc: $(WXSTC-WRAPPER) # # $(WXSTC-WRAPPER): wxd # $(WXD-EXE) -s wxSTC-D3/stc.h --wxc $(WXC) -o $(WXC) # $(WXD-EXE) -s ../wxWidgets-$(WXWIN-VERSION)/contrib/include/wx/stc/stc.h --wxc $(WXC) -o $(WXC) #-------------------------------------------------------------------------- # Documentation #-------------------------------------------------------------------------- DOC-OUTDIR =$(OUTDIR)/doc/html WXCORE-DOC-OUTDIR =$(DOC-OUTDIR)/wxcore WX-DOC-OUTDIR =$(DOC-OUTDIR)/wx WXBOTH-DOC-OUTDIR =$(DOC-OUTDIR) WXCORE-DOCFILE =$(WXCORE-DOC-OUTDIR)/wxcore.haddock WX-DOCFILE =$(WX-DOC-OUTDIR)/wx.haddock WXBOTH-DOCFILE =$(WXBOTH-DOC-OUTDIR)/wxhaskell.haddock WXCORE-HDOCFLAGS = --prologue=config/prologue.txt --html $(HDOCBASES) WX-HDOCFLAGS = $(WXCORE-HDOCFLAGS) -i$(WXCORE-DOC-OUTDIR)/wxcore.haddock WXCORE-DOCSOURCES = $(WXCORE-DOCS) WX-DOCSOURCES = $(WX-DOCS) doc: doc-dirs $(WXCORE-DOCFILE) $(WX-DOCFILE) doc-dirs: @$(call ensure-dir,$(WXCORE-DOC-OUTDIR)) @$(call ensure-dir,$(WX-DOC-OUTDIR)) @$(call ensure-dir,$(WXBOTH-DOC-OUTDIR)) doc-clean: -@$(call full-remove-dir,$(WXCORE-DOC-OUTDIR)) -@$(call full-remove-dir,$(WX-DOC-OUTDIR)) -@$(call full-remove-dir,$(WXBOTH-DOC-OUTDIR)) combined-doc: doc-dirs $(WXBOTH-DOCFILE) # copy documentation to the wxhaskell website webdoc: doc cd $(DOC-OUTDIR); scp *.* $(USERNAME)@shell.sourceforge.net:/home/groups/w/wx/wxhaskell/htdocs/doc # documentation distribution ifeq ($(HDOCFOUND),yes) docdist: docdist-clean combined-doc @echo "-- adding documentation" @echo $(wildcard $(DOC-OUTDIR)/*) @$(call cp-docdist,$(OUTDIR),$(wildcard $(DOC-OUTDIR)/*)) else docdist: @echo "-- haddock not available: documentation can not be added" endif @echo "-- adding samples" @$(call cp-docdist,.,$(SAMPLE-SOURCES)) @$(CD) $(DOCDIST-OUTDIR) && $(call zip-add-rec,$(DIST-DOC),*) docdist-clean: -@$(call full-remove-dir,$(DOCDIST-OUTDIR)) -@$(call safe-remove-file,$(DIST-DOC)) # generate documentation with haddock $(WXCORE-DOCFILE): config/prologue.txt $(WXCORE-DOCSOURCES) $(HDOC) --odir $(WXCORE-DOC-OUTDIR) --dump-interface=$(WXCORE-DOCFILE) $(WXCORE-HDOCFLAGS) $(WXCORE-DOCSOURCES) $(WX-DOCFILE): config/prologue.txt $(WX-DOCSOURCES) $(HDOC) --odir $(WX-DOC-OUTDIR) --dump-interface=$(WX-DOCFILE) $(WX-HDOCFLAGS) $(WX-DOCSOURCES) $(WXBOTH-DOCFILE): config/prologue.txt $(WXCORE-DOCSOURCES) $(WX-DOCSOURCES) $(HDOC) --odir $(WXBOTH-DOC-OUTDIR) --dump-interface=$(WXBOTH-DOCFILE) $(WXCORE-HDOCFLAGS) $(WXCORE-DOCSOURCES) $(WX-DOCSOURCES) #-------------------------------------------------------------------------- # Cabal / Hackage stuff #-------------------------------------------------------------------------- # for hackage dist: hackagedist hackagedist: hackagedist-clean dist-dirs @$(call cp-hackagedist, $(WXC)) @$(call cp-hackagedist, $(WXD)) @$(call cp-hackagedist, $(WXCORE)) @$(call cp-hackagedist, $(WXHASKELL-SOURCES)) @$(call cp-hackagedist, $(SAMPLE-SOURCES)) @echo tarring: $(DIST-HACKAGE) @$(CD) $(HACKAGEDIST-OUTDIR) && $(call tgz-add-rec,$(DIST-HACKAGE),$(WXCOREVER)) hackagedist-clean: -@$(call full-remove-dir,$(HACKAGEDIST-OUTDIR)) -@$(call safe-remove-file,$(DIST-HACKAGE)) copy: $(MAKE) install prefix=$(destdir)/$(prefix) \ bindir=$(destdir)/$(bindir) \ libdir=$(destdir)/$(libdir) \ datadir=$(destdir)/$(datadir) \ libexecdir=$(destdir)/$(libexecdir) # this is the same as the doc target below (no 's') docs: wxd-dirs doc-dirs $(WXCORE-DOCFILE)