summaryrefslogtreecommitdiff
path: root/Makefile
blob: b1e76cb88f097f2d5f5fd5a58bf917e862f2980e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/usr/bin/make -f

export TOPDIR:=$(shell pwd)

include $(TOPDIR)/Vars.make
ifneq ($(wildcard $(TOPDIR)/Vars.local),)
include $(TOPDIR)/Vars.local
endif

noconfig_targets := xconfig menuconfig config oldconfig randconfig \
		    defconfig allyesconfig allnoconfig allmodconfig \
		    clean-configs $(TOPDIR)/scripts/subst $(TOPDIR)/scripts/filesubst \
		    ipks

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/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

#
# The IPK creation is a very slow process. If you want to only create some
# IPKs, e.g. the ones in library, then do
#	make ipks IPK_START=library
# and then only the *.control files in this directory will be processed
ipks: $(OPIEDIR)/scripts/subst $(OPIEDIR)/scripts/filesubst FORCE $(TOPDIR)/.config
	@find $(OPIEDIR)/$(IPK_START) -type f -name \*.control | ( for ctrl in `cat`; do \
		prerm=`echo $$ctrl|sed -e 's,\.control$$,.prerm,'`; \
		preinst=`echo $$ctrl|sed -e 's,\.control$$,.preinst,'`; \
		postrm=`echo $$ctrl|sed -e 's,\.control$$,.postrm,'`; \
		postinst=`echo $$ctrl|sed -e 's,\.control$$,.postinst,'`; \
		echo "Building ipk of $$ctrl"; \
		cd $(OPIEDIR); $(OPIEDIR)/scripts/mkipkg --subst=$(OPIEDIR)/scripts/subst --filesubst=$(OPIEDIR)/scripts/filesubst --control=$$ctrl --prerm=$$prerm --preinst=$$preinst --postrm=$$postrm --postinst=$$postinst --strip=$(STRIP) $(OPIEDIR); \
		done )

$(TOPDIR)/.config : $(TOPDIR)/.depends.cfgs

all menuconfig xconfig oldconfig config randconfig allyesconfig allnoconfig defconfig : $(TOPDIR)/.depends.cfgs

clean-configs :
	@echo "Wiping generated config.in files..."
	@-rm -f $(configs)

ifneq ($(wildcard $(TOPDIR)/.depends.cfgs),)
    include $(TOPDIR)/.depends.cfgs
endif

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

# 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.

xconfig :
	$(call descend,scripts/kconfig,qconf)
	LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$(TOPDIR)/scripts/kconfig \
		./scripts/kconfig/qconf ./config.in

menuconfig : $(TOPDIR)/scripts/lxdialog/lxdialog
	$(call descend,scripts/kconfig,mconf)
	./scripts/kconfig/mconf ./config.in

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


export

ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)

export include-config := 1

-include $(TOPDIR)/.config
-include $(TOPDIR)/.depends
endif

-include $(TOPDIR)/.config.cmd

SUBDIRS = $(subdir-y)

all clean install ipk: $(SUBDIRS)

lupdate lrelease:
	@for i in $(SUBDIRS); do $(MAKE) -C $$i $@; done

opie-lupdate opie-lrelease:
	@for i in $(SUBDIRS); do $(MAKE) -C $$i $@; done

$(subdir-y) : $(if $(CONFIG_LIBQPE),$(QTDIR)/stamp-headers $(OPIEDIR)/stamp-headers) \
	$(if $(CONFIG_LIBQPE-X11),$(QTDIR)/stamp-headers-x11 $(OPIEDIR)/stamp-headers-x11 ) \
	$(TOPDIR)/library/custom.h

clean : $(TOPDIR)/.config
	make -C bin clean
	make -C lib clean
	make -C plugins clean

apidox : doc/generate_apidox 

include $(TOPDIR)/Rules.make