-rw-r--r-- | Makefile | 195 |
1 files changed, 86 insertions, 109 deletions
@@ -1,136 +1,113 @@ -hehindefault: dynamic +#!/usr/bin/make -f +export OPIEDIR:=$(shell pwd) +export TOPDIR:=$(OPIEDIR) +export QMAKE:=$(OPIEDIR)/qmake/qmake + +export QMAKESPECSDIR=$(OPIEDIR)/mkspecs -all: default docs +noconfig_targets := xconfig menuconfig config oldconfig randconfig \ + defconfig allyesconfig allnoconfig allmodconfig \ + clean-configs -LIBS=library libopie +configs += $(TOPDIR)/core/applets/config.in $(TOPDIR)/core/apps/config.in $(TOPDIR)/core/multimedia/config.in $(TOPDIR)/core/pim/config.in $(TOPDIR)/core/pim/today/plugins/config.in $(TOPDIR)/core/settings/config.in $(TOPDIR)/development/config.in $(TOPDIR)/inputmethods/config.in $(TOPDIR)/libopie/ofileselector/config.in $(TOPDIR)/libopie/pim/config.in $(TOPDIR)/libsql/config.in $(TOPDIR)/noncore/applets/config.in $(TOPDIR)/noncore/apps/opie-console/test/config.in $(TOPDIR)/noncore/apps/config.in $(TOPDIR)/noncore/comm/config.in $(TOPDIR)/noncore/decorations/config.in $(TOPDIR)/noncore/games/config.in $(TOPDIR)/noncore/graphics/config.in $(TOPDIR)/noncore/multimedia/config.in $(TOPDIR)/noncore/net/config.in $(TOPDIR)/noncore/net/opietooth/config.in $(TOPDIR)/noncore/settings/config.in $(TOPDIR)/noncore/styles/config.in $(TOPDIR)/noncore/tools/calc2/config.in $(TOPDIR)/noncore/tools/config.in $(TOPDIR)/noncore/unsupported/opiemail/ifaces/config.in $(TOPDIR)/noncore/unsupported/config.in $(TOPDIR)/noncore/todayplugins/config.in +# $(TOPDIR)/.config depends on .depends.cfgs, as it depends on $(configs) +# in order to have a full set of config.in files. +# .depends depends on $(TOPDIR)/.config +# everything else depends on .depends, to ensure the dependencies are +# intact. +# +# NOTE: The order in which things happen in this makefile is +# -critical-. Do not rearrange this! + +all : $(TOPDIR)/.config -INPUTCOMPONENTS= inputmethods/keyboard inputmethods/pickboard \ - inputmethods/handwriting inputmethods/unikeyboard \ - inputmethods/jumpx inputmethods/kjumpx \ - inputmethods/dvorak inputmethods/multikey \ +$(TOPDIR)/.config : $(TOPDIR)/.depends.cfgs -APPLETS= core/applets/batteryapplet \ - core/applets/irdaapplet core/applets/volumeapplet \ - core/applets/clockapplet \ - core/applets/homeapplet core/applets/suspendapplet \ - core/applets/logoutapplet \ - core/applets/screenshotapplet core/applets/clipboardapplet \ - core/applets/cardmon core/applets/obex \ - core/applets/vmemo \ - noncore/applets/wirelessapplet noncore/applets/notesapplet +all menuconfig xconfig oldconfig config randconfig allyesconfig allnoconfig defconfig : $(TOPDIR)/.depends.cfgs -MAIL= noncore/mail/libmail noncore/mail/bend +clean-configs : + @echo "Wiping generated config.in files..." + @-rm -f $(configs) -PLAYER = core/multimedia/opieplayer/libmpeg3 \ - core/multimedia/opieplayer/libmad \ - core/multimedia/opieplayer/wavplugin \ - core/multimedia/opieplayer/modplug +-include $(TOPDIR)/.depends.cfgs -COMPONENTS=$(LOCALCOMPONENTS) $(INPUTCOMPONENTS) $(APPLETS) $(MAIL) $(PLAYER) +all menuconfig xconfig oldconfig config randconfig allyesconfig allnoconfig defconfig : $(configs) +$(TOPDIR)/.config: $(TOPDIR)/.depends.cfgs $(configs) + $(call descend,scripts/kconfig,conf) + @if [ ! -e $@ ]; then \ + cp $(TOPDIR)/def-configs/opie $@; \ + fi; + @$(MAKE) -C scripts/kconfig conf; + ./scripts/kconfig/conf -s ./config.in -PIMAPPS = core/pim/addressbook core/pim/datebook \ - core/pim/today core/pim/todo +# config rules must have the $(configs) var defined +# at the time that they run. we must ensure that .depends.cfgs +# is built and included by the time we reach this point. -TODAYPLUGINS = core/pim/today/plugins/datebook \ - core/pim/today/plugins/addressbook \ - core/pim/today/plugins/todolist \ - core/pim/today/plugins/mail \ - noncore/todayplugins/stockticker/stockticker noncore/todayplugins/stockticker/stocktickerlib \ - noncore/todayplugins/fortune \ - noncore/todayplugins/weather +xconfig : + $(call descend,scripts/kconfig,qconf) + LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$(TOPDIR)/scripts/kconfig \ + ./scripts/kconfig/qconf ./config.in +menuconfig : scripts/lxdialog/lxdialog + $(call descend,scripts/kconfig,mconf) + ./scripts/kconfig/mconf ./config.in -COREAPPS = core/apps/filebrowser core/apps/helpbrowser \ - core/apps/textedit core/apps/embeddedkonsole \ - core/launcher \ - core/opie-login \ - core/apps/oipkg core/apps/qcop +config : + $(call descend,scripts/kconfig,conf) + ./scripts/kconfig/conf ./config.in + +oldconfig : + $(call descend,scripts/kconfig,conf) + ./scripts/kconfig/conf -o ./config.in + +randconfig : + $(call descend,scripts/kconfig,conf) + ./scripts/kconfig/conf -r ./config.in + +allyesconfig : + $(call descend,scripts/kconfig,conf) + ./scripts/kconfig/conf -y ./config.in + +allnoconfig : + $(call descend,scripts/kconfig,conf) + ./scripts/kconfig/conf -n ./config.in + +defconfig : + $(call descend,scripts/kconfig,conf) + ./scripts/kconfig/conf -d ./config.in -COREMULTIMEDIA = core/multimedia/opieplayer -CORESETTINGS = core/settings/light-and-power core/settings/security \ - noncore/settings/netsystemtime core/settings/citytime \ - core/settings/launcher core/settings/button +export -NONCORESETTINGS =noncore/settings/language noncore/settings/rotation \ - noncore/settings/appearance2 noncore/settings/sound \ - noncore/settings/mediummount \ - noncore/settings/tabmanager \ - noncore/settings/sshkeys noncore/settings/usermanager \ - noncore/settings/backup +ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) -NONCORETOOLS = noncore/tools/calculator noncore/tools/clock \ - noncore/tools/remote noncore/tools/opie-sh noncore/apps/advancedfm \ - noncore/tools/formatter +export include-config := 1 -NONCORESTYLES = noncore/styles/liquid noncore/styles/theme noncore/styles/metal \ - noncore/styles/flat noncore/styles/fresh +-include $(TOPDIR)/.config +-include $(TOPDIR)/.depends -NONCOREDECOS = noncore/decorations/liquid noncore/decorations/flat \ - noncore/decorations/polished +endif -GAMES = noncore/games/minesweep noncore/games/solitaire \ - noncore/games/tetrix noncore/games/wordgame \ - noncore/games/parashoot noncore/games/snake \ - noncore/games/mindbreaker \ - noncore/games/go noncore/games/qasteroids \ - noncore/games/fifteen noncore/games/tictac \ - noncore/games/kcheckers noncore/games/kpacman \ - noncore/games/kbill noncore/games/buzzword \ - noncore/games/bounce noncore/games/sfcave +-include $(TOPDIR)/..config.cmd -NONAPPS = noncore/apps/opie-sheet noncore/apps/tableviewer \ - noncore/apps/opie-reader noncore/apps/checkbook noncore/apps/oxygen \ - noncore/apps/sysinfo noncore/net/opieirc noncore/apps/aqpkg \ - noncore/apps/opie-console noncore/apps/opie-write - -NONNET = noncore/net/ftplib noncore/net/opieftp \ - noncore/mail +SUBDIRS = $(subdir-y) -NONMULT = noncore/multimedia/showimg noncore/graphics/drawpad \ - noncore/graphics/qpdf noncore/apps/confedit +export QMAKESPEC=$(QMAKESPECSDIR)/$(patsubst "%",%,$(CONFIG_SPECFILE)) +ifdef CONFIG_OPTIMIZATIONS +export CFLAGS_RELEASE=$(patsubst "%,%,$(CONFIG_OPTIMIZATIONS)) +export CFLAGS_RELEASE:=$(patsubst %",%,$(CFLAGS_RELEASE)) +endif -NONCOMM = noncore/comm/keypebble +all clean lupdate lrelease install ipk: $(SUBDIRS) -PLUGINS = freetype +$(subdir-y) : $(if $(CONFIG_LIBQPE),$(QTDIR)/stamp-headers) \ + $(if $(CONFIG_LIBQPE-X11),$(QTDIR)/stamp-headers-x11) \ + $(TOPDIR)/library/custom.h -APPS=$(LOCALAPPS) $(PIMAPPS) $(COREAPPS) \ - $(COREMULTIMEDIA) $(CORESETTINGS) \ - $(NONCORESETTINGS) $(NONCORETOOLS) $(NONCORESTYLES) \ - $(NONCOREDECOS) $(NONAPPS) $(NONNET) $(NONMULT) \ - $(NONCOMM) $(GAMES) $(TODAYPLUGINS) $(PLUGINS) - - +clean : $(TOPDIR)/.config -NONTMAKEAPPS := core/opiealarm - -DOCS = docs/src/opie-policy - -dynamic: $(APPS) $(NONTMAKEAPPS) - -docs: $(DOCS) - -$(COMPONENTS): $(LIBS) - -$(NONTMAKEAPPS) $(APPS): $(LIBS) $(COMPONENTS) - -$(LIBS) $(COMPONENTS) $(NONTMAKEAPPS) $(APPS) $(DOCS): - $(MAKE) -C $@ -f Makefile - -showcomponents: - @echo $(LIBS) $(APPS) $(COMPONENTS) - -clean: - for dir in $(NONTMAKEAPPS) $(APPS) $(LIBS) $(COMPONENTS) $(DOCS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done - -lupdate: - for dir in $(APPS) $(LIBS) $(COMPONENTS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done - -lrelease: - for dir in $(APPS) $(LIBS) $(COMPONENTS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done - - -.PHONY: default dynamic $(NONTMAKEAPPS) $(LIBS) $(APPS) $(COMPONENTS) $(DOCS) showcomponents clean +include $(TOPDIR)/Rules.make |