#all : codebases
#all : rpms
#all : srpms
-# mention $(ALL) here rather than rpms
-# this is because the inter-package dependencies are expressed like
-# util-vserver: util-python
all: rpms
+all: srpms
endif
endif
#
define stage1_variables
$(1)_spec = $(notdir $($(1)-SPEC))
-$(1)_specpath = CODESPECS/$(notdir $($(1)-SPEC))
+$(1)_specpath = SPECS/$(notdir $($(1)-SPEC))
$(1)_module = $(firstword $($(1)-MODULES))
endef
# cannot use variables in such rules, we need to inline everything, sigh
define target_spec
$($(1)_specpath):
- mkdir -p CODESPECS
+ mkdir -p SPECS
(echo -n "# Generated by planetlab build from $($(1)-SPEC) on " ; date) > $($(1)_specpath)
echo "%define distroname $(DISTRO)" >> $($(1)_specpath)
echo "%define distrorelease $(RELEASE)" >> $($(1)_specpath)
$(call extract_single_module,$(package)))
@(echo -n "XXXXXXXXXXXXXXX -- END CODEBASE $(package) : $@ " ; date)
+### rpmbuild invokation
+ALLRPMS:=$(foreach package,$(ALL),$($(package)-RPM))
+rpms: $(ALLRPMS)
+ @echo $(words $(ALLRPMS)) binary rpms OK
+.PHONY: rpms
+
+# usage: build_binary_rpm package
+# xxx hacky - invoke createrepo if DEPENDFILES mentions RPMS/yumgroups.xml
+define target_binary_rpm
+$($(1)-RPM): $($(1)_specpath) $($(1)-TARBALL) .rpmmacros
+ mkdir -p BUILD RPMS tmp
+ @(echo -n "XXXXXXXXXXXXXXX -- BEG RPM $(1) " ; date)
+ $(if $(findstring RPMS/yumgroups.xml,$($(1)-DEPENDFILES)), createrepo --quiet -g yumgroups.xml RPMS/ , )
+ $(if $($(1)-RPMBUILD),\
+ $($(1)-RPMBUILD) $($(1)-RPMFLAGS) -bb $($(1)_specpath), \
+ $(RPMBUILD) $($(1)-RPMFLAGS) -bb $($(1)_specpath))
+ @(echo -n "XXXXXXXXXXXXXXX -- END RPM $(1) " ; date)
+endef
+
+$(foreach package,$(ALL),$(eval $(call target_binary_rpm,$(package))))
+
### source rpms
ALLSRPMS:=$(foreach package,$(ALL),$($(package)-SRPM))
srpms: $(ALLSRPMS)
$(foreach package,$(ALL),$(eval $(call target_source_rpm,$(package))))
-### rpmbuild invokation
-ALLRPMS:=$(foreach package,$(ALL),$($(package)-RPM))
-# same as above, mention $(ALL) and not $(ALLRPMS)
-rpms: $(ALLRPMS)
- @echo $(words $(ALLRPMS)) binary rpms OK
-.PHONY: rpms
-
-# usage: build_binary_rpm package
-# xxx hacky - invoke createrepo if DEPENDFILES mentions RPMS/yumgroups.xml
-define target_binary_rpm
-$($(1)-RPM): $($(1)-SRPM)
- mkdir -p BUILD RPMS SPECS tmp
- @(echo -n "XXXXXXXXXXXXXXX -- BEG RPM $(1) " ; date)
- $(if $(findstring RPMS/yumgroups.xml,$($(1)-DEPENDFILES)), createrepo --quiet -g yumgroups.xml RPMS/ , )
- $(if $($(1)-RPMBUILD),\
- $($(1)-RPMBUILD) $($(1)-RPMFLAGS) --rebuild $($(1)-SRPM), \
- $(RPMBUILD) $($(1)-RPMFLAGS) --rebuild $($(1)-SRPM))
- @(echo -n "XXXXXXXXXXXXXXX -- END RPM $(1) " ; date)
-endef
-
-$(foreach package,$(ALL),$(eval $(call target_binary_rpm,$(package))))
-
### RPMS/yumgroups.xml
ifndef YUMGROUPS
YUMGROUPS := groups/$(PLDISTRO).xml
### brute force clean
distclean1:
- rm -rf pldistro.mk .rpmmacros spec2make CODESPECS MAKE
+ rm -rf pldistro.mk .rpmmacros spec2make SPECS MAKE
distclean2:
- rm -rf CODEBASES SOURCES BUILD RPMS SRPMS SPECS tmp
+ rm -rf CODEBASES SOURCES BUILD RPMS SRPMS tmp
distclean: distclean1 distclean2
.PHONY: distclean1 distclean2 distclean
@echo "Run make in two stages:"
@echo ""
@echo "make stage1=true PLDISTRO=onelab"
- @echo " -> extracts all spec files in CODESPECS/ and mk files in MAKE/"
+ @echo " -> extracts all spec files in SPECS/ and mk files in MAKE/"
@echo " as well as save PLDISTRO for subsequent runs"
@echo ""
@echo "Then you can use the following targets"
# in this case the srpm is created by running make srpm in the codebase
#
-# using 2.6.22 on all platforms - experimental
-#ifeq "$(RELEASE)" "8"
+ifeq "$(RELEASE)" "8"
srpm-kernel-$(HOSTARCH)-MODULES := linux-patches
srpm-kernel-$(HOSTARCH)-SPEC := kernel-2.6-planetlab.spec
ifeq ($(HOSTARCH),i386)
endif
KERNELS += srpm-kernel-$(HOSTARCH)
-#else
-#kernel-$(HOSTARCH)-MODULES := linux-tree
-#kernel-$(HOSTARCH)-SPEC := scripts/kernel-2.6-planetlab.spec
-#ifeq ($(HOSTARCH),i386)
-#kernel-$(HOSTARCH)-RPMFLAGS:= --target i686
-#else
-#kernel-$(HOSTARCH)-RPMFLAGS:= --target $(HOSTARCH)
-#endif
-#KERNELS += kernel-$(HOSTARCH)
-#endif
+else
+kernel-$(HOSTARCH)-MODULES := linux-tree
+kernel-$(HOSTARCH)-SPEC := scripts/kernel-2.6-planetlab.spec
+ifeq ($(HOSTARCH),i386)
+kernel-$(HOSTARCH)-RPMFLAGS:= --target i686
+else
+kernel-$(HOSTARCH)-RPMFLAGS:= --target $(HOSTARCH)
+endif
+KERNELS += kernel-$(HOSTARCH)
+endif
kernel: $(KERNELS)
kernel-clean: $(foreach package,$(KERNELS),$(package)-clean)
proper-RPMBUILD := sudo bash ./rpmbuild.sh
# proper uses scripts in util-python for building
proper-DEPENDS := libhttpd++ util-python
-# disabled temporarily (or ?)
-#ALL += proper
+ALL += proper
#
# codemux: Port 80 demux