summaryrefslogtreecommitdiff
path: root/Makefile
Side-by-side diff
Diffstat (limited to 'Makefile') (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile195
1 files changed, 86 insertions, 109 deletions
diff --git a/Makefile b/Makefile
index a22669a..2741105 100644
--- a/Makefile
+++ b/Makefile
@@ -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