1
#!/usr/bin/make -f
2
3
export TOPDIR:=$(OPIEDIR)
4
5
include $(TOPDIR)/Vars.make
6
ifneq ($(wildcard $(TOPDIR)/Vars.local),)
7
include $(TOPDIR)/Vars.local
8
endif
9
10
noconfig_targets := xconfig menuconfig config oldconfig randconfig \
11
		    defconfig allyesconfig allnoconfig allmodconfig \
12
		    clean-configs $(TOPDIR)/scripts/subst $(TOPDIR)/scripts/filesubst \
13
		    ipks
14
15
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)/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/config.in $(TOPDIR)/noncore/todayplugins/config.in $(TOPDIR)/examples/config.in $(TOPDIR)/noncore/securityplugins/config.in
16
17
# $(TOPDIR)/.config depends on .depends.cfgs, as it depends on $(configs)
18
# in order to have a full set of config.in files.
19
# .depends depends on $(TOPDIR)/.config
20
# everything else depends on .depends, to ensure the dependencies are
21
# intact.
22
#
23
# NOTE: The order in which things happen in this makefile is
24
# 	-critical-. Do not rearrange this!
25
 
26
all : $(TOPDIR)/.config
27
28
#
29
# The IPK creation is a very slow process. If you want to only create some
30
# IPKs, e.g. the ones in library, then do
31
#	make ipks IPK_START=library
32
# and then only the *.control files in this directory will be processed
33
ipks: $(OPIEDIR)/scripts/subst $(OPIEDIR)/scripts/filesubst FORCE $(TOPDIR)/.config
34
	@find $(OPIEDIR)/$(IPK_START) -type f -name \*.control | ( for ctrl in `cat`; do \
35
		prerm=`echo $${ctrl/.control/.prerm}`; \
36
		preinst=`echo $${ctrl/.control/.preinst}`; \
37
		postrm=`echo $${ctrl/.control/.postrm}`; \
38
		postinst=`echo $${ctrl/.control/.postinst}`; \
39
		echo "Building ipk of $$ctrl"; \
40
		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); \
41
		done )
42
43
ipks-mt: $(OPIEDIR)/scripts/subst $(OPIEDIR)/scripts/filesubst FORCE $(TOPDIR)/.config
44
	@> $(OPIEDIR)/AllThreadedPackages
45
	@find $(OPIEDIR)/ -type f -name \*.control | grep -v -- "-mt" | while read ctrl ; do \
46
		grep "Package[ ]*:" $${ctrl} | sed "s+Package[ ]*:[ ]*++"; \
47
		done | sort | uniq >> $(OPIEDIR)/AllThreadedPackages
48
	@find $(OPIEDIR)/ -type f -name \*.control | while read ctrl ; do \
49
		echo "Converting $$ctrl to -mt package"; \
50
		nctrl=`$(OPIEDIR)/scripts/tothreaded $$ctrl $(OPIEDIR)/AllThreadedPackages`; \
51
		echo "Building ipk of $$ctrl"; \
52
		[ -n $$nctrl ] && cd $(OPIEDIR) && $(OPIEDIR)/scripts/mkipkg --subst=$(OPIEDIR)/scripts/subst --filesubst=$(OPIEDIR)/scripts/filesubst --control=$$nctrl --prerm=$${nctrl/-mt.control/.prerm} --preinst=$${nctrl/-mt.control/.preinst} --postrm=$${nctrl/-mt.control/.postrm} --postinst=$${nctrl/-mt.control/.postinst} --strip=$(STRIP) $(OPIEDIR); \
53
		done
54
	@rm -f $(OPIEDIR)/AllThreadedPackages
55
56
FORCE:
57
58
$(TOPDIR)/.config : $(TOPDIR)/.depends.cfgs
59
60
all menuconfig xconfig oldconfig config randconfig allyesconfig allnoconfig defconfig : $(TOPDIR)/.depends.cfgs
61
62
clean-configs :
63
	@echo "Wiping generated config.in files..."
64
	@-rm -f $(configs)
65
66
ifneq ($(wildcard $(TOPDIR)/.depends.cfgs),)
67
    include $(TOPDIR)/.depends.cfgs
68
endif
69
70
all menuconfig xconfig oldconfig config randconfig allyesconfig allnoconfig defconfig : $(configs)
71
72
$(TOPDIR)/.config: $(TOPDIR)/.depends.cfgs $(configs)
73
	$(call descend,scripts/kconfig,conf)
74
	@if [ ! -e $@ ]; then \
75
		cp $(TOPDIR)/def-configs/opie $@; \
76
	fi
77
	@$(MAKE) -C scripts/kconfig conf
78
	./scripts/kconfig/conf -s ./config.in
79
80
export
81
82
ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
83
84
export include-config := 1
85
86
-include $(TOPDIR)/.config
87
-include $(TOPDIR)/.depends
88
endif
89
90
-include $(TOPDIR)/.config.cmd
91
92
SUBDIRS = $(subdir-y)
93
94
all clean install ipk: $(SUBDIRS)
95
96
lupdate lrelease:
97
	@for i in $(SUBDIRS); do $(MAKE) -C $$i $@; done
98
99
opie-lupdate opie-lrelease messages:
100
	@for i in $(SUBDIRS); do $(MAKE) -C $$i $@; done;
101
102
# from kde 
103
qtmessages:
104
	cd $(QTDIR)/src ; \
105
	sed -e "s,#define,," xml/qxml.cpp > qxml_clean.cpp ;\
106
	find . -name "*.cpp" | grep -v moc_ > list ;\
107
	for file in qfiledialog qcolordialog qprintdialog \
108
		qurloperator qftp qhttp qlocal qerrormessage; do \
109
		grep -v $$file list > list.new && mv list.new list ;\
110
	done ;\
111
	xgettext -C -ktr -kQT_TRANSLATE_NOOP -n `cat list` -o $(OPIEDIR)/qt-messages.pot 
112
113
ifndef CONFIG_TARGET_OE
114
$(subdir-y) : $(if $(CONFIG_LIBQPE),$(QTDIR)/stamp-headers $(OPIEDIR)/stamp-headers) \
115
	$(if $(CONFIG_LIBQPE-X11),$(QTDIR)/stamp-headers-x11 $(OPIEDIR)/stamp-headers-x11 ) \
116
	$(TOPDIR)/library/custom.h
117
else
118
$(subdir-y) : $(if $(CONFIG_LIBQPE),$(OPIEDIR)/stamp-headers) $(TOPDIR)/library/custom.h
119
endif
120
121
clean : $(TOPDIR)/.config
122
	make -C bin clean
123
	make -C lib clean
124
	make -C plugins clean
125
126
apidox : 
127
	doc/generate_apidox 
128
129
mrproper : clean-configs
130
	find . -name ".moc"|xargs rm -rf
131
	find . -name ".obj"|xargs rm -rf
132
	find lib -name "lib*.*"|xargs rm -f
133
	find plugins -name "lib*.*"|xargs rm -f
134
	find . -name "*.pro"|xargs touch
135
	rm stamp-headers
136
	make -C qmake clean
137
	rm qmake/qmake
138
139
include $(TOPDIR)/Rules.make
140
141
# to speed up (avoid include/generation of packaging rules)
142
ifneq ($(filter package%,$(MAKECMDGOALS)),)
143
144
# packaging requested
145
146
$(TOPDIR)/Package.make :
147
	@echo "Generating packaging rules"
148
	@$(TOPDIR)/scripts/GeneratePackageMake > $(TOPDIR)/Package.make
149
150
# load rules to make packages
151
-include $(TOPDIR)/Package.make
152
153
endif