|
@@ -1,230 +0,0 @@
|
|
|
-# $Id$
|
|
|
-REPOFORGE := repoforge
|
|
|
-include package.$(REPOFORGE)
|
|
|
-
|
|
|
-PWD := $(shell pwd)
|
|
|
-WORK_DIR := work
|
|
|
-TEMP_DIR := temp
|
|
|
-BUILD_DIR := build
|
|
|
-
|
|
|
-# Function to find out absolute path
|
|
|
-absname = $(if $(filter /%,$(1)),$(1),$(PWD)/$(1))
|
|
|
-
|
|
|
-# Structure of repoforge tree
|
|
|
-ifndef sources_dir
|
|
|
-SOURCES_DIR_ORIG := sources
|
|
|
-else
|
|
|
-SOURCES_DIR_ORIG := $(sources_dir)
|
|
|
-endif
|
|
|
-SOURCES_DIR := $(call absname,$(SOURCES_DIR_ORIG))
|
|
|
-ifndef specs_dir
|
|
|
-SPECS_DIR_ORIG := $(SOURCES_DIR_ORIG)
|
|
|
-else
|
|
|
-SPECS_DIR_ORIG := $(specs_dir)
|
|
|
-endif
|
|
|
-SPECS_DIR := $(call absname,$(SPECS_DIR_ORIG))
|
|
|
-
|
|
|
-PATCH_NAME := $(title)-$(version)-$(REPOFORGE).patch
|
|
|
-PATCH := $(SOURCES_DIR)/$(PATCH_NAME)
|
|
|
-PATCH_LINK := $(PATCH_NAME)
|
|
|
-DATE := $(shell date +'%Y%m%d')
|
|
|
-HISTORY := "History"
|
|
|
-EXCLUDE := exclude.$(REPOFORGE)
|
|
|
-AUTO_EXCLUDE := auto_exclude.$(REPOFORGE)
|
|
|
-
|
|
|
-#------------------- Check title and version
|
|
|
-ifndef title
|
|
|
- ${error Package title is not specified.}
|
|
|
-endif
|
|
|
-
|
|
|
-#------------------- Find out base package system
|
|
|
-PKG_LEGAL := 0
|
|
|
-ifndef pkg
|
|
|
- ${error Package system is not specified.}
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq "$(pkg)" "rpm"
|
|
|
- PKG_LEGAL := 1
|
|
|
- RPM := rpm
|
|
|
- RPMBUILD := $(shell \
|
|
|
- rpmbuild --help 2>/dev/null >/dev/null; \
|
|
|
- if [ $$? == "0" ]; then \
|
|
|
- echo rpmbuild; \
|
|
|
- else \
|
|
|
- echo rpm; \
|
|
|
- fi \
|
|
|
- )
|
|
|
- RPMOPTS := --define="_sourcedir $(SOURCES_DIR)" --define="_builddir $(PWD)/$(BUILD_DIR)" --define="_specdir $(SPECS_DIR)"
|
|
|
- PKG_SPEC_NAME := $(title).spec
|
|
|
- PKG_SPEC := $(SPECS_DIR)/$(PKG_SPEC_NAME)
|
|
|
- PKG_SPEC_LINK := $(title).spec
|
|
|
- PKG_WITH_PATCH := --with $(REPOFORGE)_patch
|
|
|
- PKG_WITHOUT_PATCH := --without $(REPOFORGE)_patch
|
|
|
- PKG_BP_BUILD := $(RPMBUILD) $(RPMOPTS) -bp --nodeps
|
|
|
- PKG_BC_BUILD := $(RPMBUILD) $(RPMOPTS) -bc
|
|
|
- PKG_BS := $(RPMBUILD) $(RPMOPTS) -bs
|
|
|
- PKG_BB := $(RPMBUILD) $(RPMOPTS) -bb
|
|
|
- PKG_TREE := $(RPM) $(RPMOPTS) -ivh --nodeps
|
|
|
-endif
|
|
|
-ifeq "$(pkg)" "deb"
|
|
|
- ${warning Debian package system is not supported yet.}
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(PKG_LEGAL),0)
|
|
|
- ${error Unsupported package system $(pkg).}
|
|
|
-endif
|
|
|
-
|
|
|
-# Public targets
|
|
|
-
|
|
|
-all: buildprep
|
|
|
-
|
|
|
-clean: temp_del build_del clean_rm
|
|
|
-
|
|
|
-init: work_dir work_link build_bp
|
|
|
-
|
|
|
-bp: temp_dir temp_link build_bp cp_build_work work_link temp_del
|
|
|
-
|
|
|
-bc: temp_dir temp_link build_bc cp_build_work work_link temp_del
|
|
|
-
|
|
|
-srpm: bs
|
|
|
-bs: temp_dir temp_link orig patch_diff build_bs work_link temp_del
|
|
|
-
|
|
|
-rpm: bb
|
|
|
-bb: temp_dir temp_link orig patch_diff build_bb work_link temp_del
|
|
|
-
|
|
|
-patch: temp_dir temp_link orig patch_diff work_link temp_del
|
|
|
-
|
|
|
-prep: rpmize work_link
|
|
|
-
|
|
|
-repair: rep
|
|
|
-rep: clean prep
|
|
|
-
|
|
|
-copy: cop
|
|
|
-cop: cp_build_work work_link temp_del
|
|
|
-
|
|
|
-# Internal targets
|
|
|
-
|
|
|
-clean_rm:
|
|
|
- @$(RM) $(PATCH) $(PATCH_LINK) $(AUTO_EXCLUDE) $(HISTORY)
|
|
|
- @if [ -h $(PKG_SPEC_LINK) ]; then \
|
|
|
- $(RM) $(PKG_SPEC_LINK); \
|
|
|
- fi
|
|
|
-
|
|
|
-init_svn:
|
|
|
- @echo "Add working dir $(WORK_DIR) to the repository..."
|
|
|
- @status=`svn -N st $(WORK_DIR)`; \
|
|
|
- if [[ "$$status" =~ "^\?" ]]; then \
|
|
|
- svn add $(WORK_DIR); \
|
|
|
- svn ci -m "Initial working dir. Created by repoforge init command." $(WORK_DIR); \
|
|
|
-# echo "OK"; \
|
|
|
- else \
|
|
|
- echo "Directory $(WORK_DIR) is already in repository."; \
|
|
|
- fi;
|
|
|
-
|
|
|
-build_bp:
|
|
|
- @echo "Build source tree...";
|
|
|
- $(PKG_BP_BUILD) $(PKG_SPEC)
|
|
|
-
|
|
|
-orig:
|
|
|
- $(PKG_BP_BUILD) $(PKG_WITHOUT_PATCH) $(PKG_SPEC)
|
|
|
-
|
|
|
-build_bc:
|
|
|
- @echo "Build package...";
|
|
|
- $(PKG_BC_BUILD) $(PKG_SPEC)
|
|
|
-
|
|
|
-cp_build_work:
|
|
|
- @echo "Copy data from temporary to working directory..."; \
|
|
|
- tar -c -C $(BUILD_DIR) `ls -A $(BUILD_DIR)` | tar -x -C $(WORK_DIR)
|
|
|
-
|
|
|
-temp_dir:
|
|
|
- @if [ ! -d $(TEMP_DIR) ]; then \
|
|
|
- mkdir $(TEMP_DIR); \
|
|
|
- else \
|
|
|
- rm -Rf $(TEMP_DIR)/*; \
|
|
|
- fi; \
|
|
|
-
|
|
|
-temp_del:
|
|
|
- @rm -Rf $(TEMP_DIR)
|
|
|
-
|
|
|
-work_dir:
|
|
|
- @echo "Creating directory $(WORK_DIR) ..."
|
|
|
- @if [ ! -d $(WORK_DIR) ]; then \
|
|
|
- mkdir $(WORK_DIR); \
|
|
|
- else \
|
|
|
- rm -Rf $(WORK_DIR)/*; \
|
|
|
- fi
|
|
|
-
|
|
|
-work:
|
|
|
- @echo "Preparing directory $(WORK_DIR) ..."
|
|
|
- $(PKG_BP_WORK) $(PKG_WITHOUT_PATCH) $(PKG_SPEC)
|
|
|
-
|
|
|
-work_del:
|
|
|
- @rm -Rf $(WORK_DIR)
|
|
|
-
|
|
|
-buildprep: patch
|
|
|
-
|
|
|
-patch_diff:
|
|
|
- @echo "Making patch..."
|
|
|
- @> $(AUTO_EXCLUDE)
|
|
|
- @svn st $(WORK_DIR) | grep -E "^\?" | sed -e "s|^\? *[^/]*/||" >> $(AUTO_EXCLUDE)
|
|
|
- @LC_ALL=en_US diff --exclude=".svn" -uNrp $(BUILD_DIR) $(WORK_DIR) | filterdiff -p 1 -X $(AUTO_EXCLUDE) -X $(EXCLUDE) | filterdiff > $(PATCH); true
|
|
|
- @if [ ! -f $(PATCH_LINK) ]; then \
|
|
|
- ln -s -f -n $(SOURCES_DIR_ORIG)/$(PATCH_NAME) $(PATCH_LINK); \
|
|
|
- fi
|
|
|
-
|
|
|
-work_link:
|
|
|
- @ln -f -n -s $(WORK_DIR) $(BUILD_DIR)
|
|
|
-
|
|
|
-temp_link:
|
|
|
- @ln -f -n -s $(TEMP_DIR) $(BUILD_DIR)
|
|
|
-
|
|
|
-build_del:
|
|
|
- @if [ -h "$(BUILD_DIR)" ]; then \
|
|
|
- $(RM) $(BUILD_DIR); \
|
|
|
- fi
|
|
|
-
|
|
|
-
|
|
|
-rpmize: spec_link
|
|
|
-
|
|
|
-spec_link:
|
|
|
-ifeq "$(pkg)" "rpm"
|
|
|
- @if [ ! -f $(PKG_SPEC_LINK) ]; then \
|
|
|
- ln -s -n -f $(SPECS_DIR_ORIG)/$(PKG_SPEC_NAME) $(PKG_SPEC_LINK); \
|
|
|
- fi
|
|
|
-endif
|
|
|
-
|
|
|
-tree:
|
|
|
- @if [ ! -f "$(SOURCES_DIR)" ]; then \
|
|
|
- mkdir -p $(SOURCES_DIR); \
|
|
|
- fi
|
|
|
-ifeq "$(pkg)" "rpm"
|
|
|
- @if [ ! -f "$(SPECS_DIR)" ]; then \
|
|
|
- mkdir -p $(SPECS_DIR); \
|
|
|
- fi
|
|
|
-endif
|
|
|
- @if [ -f "$(SOURCE)" ]; then \
|
|
|
- $(PKG_TREE) $(SOURCE); \
|
|
|
- fi
|
|
|
-
|
|
|
-build_bs:
|
|
|
- @echo "Building SRPM..."
|
|
|
- $(PKG_BS) $(PKG_SPEC)
|
|
|
-
|
|
|
-build_bb:
|
|
|
- @echo "Building RPM..."
|
|
|
- $(PKG_BB) $(PKG_SPEC)
|
|
|
-
|
|
|
-history:
|
|
|
- @> $(HISTORY)
|
|
|
- @echo "Project: "$(TITLE) >> $(HISTORY)
|
|
|
- @echo "Version: "$(version) >> $(HISTORY)
|
|
|
- @echo "Date: "`date` >> $(HISTORY)
|
|
|
- -@svn update; \
|
|
|
- if [ $$? == 0 ]; then \
|
|
|
- svn info | grep "Revision:" >> $(HISTORY); \
|
|
|
- echo "History:" >> $(HISTORY); \
|
|
|
- svn -v log >> $(HISTORY); \
|
|
|
- fi;
|
|
|
-
|
|
|
-.PHONY: all clean clean_rm install archive rpm srpm history patch build_del buildprep prep work temp work_del temp_del bp bb bs bc init temp_bp temp_cp temp_bc tree work_link temp_link build_bp orig build_bb build_bs
|
|
|
-
|