make: Make rpm build and upload work

This commit is contained in:
Jan Lindemann 2002-07-01 18:26:01 +00:00 committed by Jan Lindemann
commit 54045394c4
5 changed files with 137 additions and 62 deletions

View file

@ -36,6 +36,7 @@ CLIENT_INC_DIR = $(TOPDIR)/../shared/tools
CONFIG_DIR = $(PREFIX)/etc
CONFIG_FILE = $(CONFIG_DIR)/$(PROJECT).cfg
LIBTYPE = static
FTP_PUB_DIR_ABS = $(JANNET_PROJ_DIR)/$(PROJECT)
# -- debugging options

View file

@ -17,9 +17,9 @@ ifndef PROJECT
lock sigsync shmem \
usrv uclnt statecheck msgfmt \
YMisc YError \
YThread YMutex YCbContr \
YThread YMutex YEvent YCbContr \
YTimeB YStopWatch YStopWatchList YStopWatchQueue YStopWatchThreadList \
lib
lib include
endif
LIBNAME := $(PROJECT)
@ -39,6 +39,9 @@ LOCAL_DIST_WINVERSION = $(shell echo $(LOCAL_WINVERSION) | sed -e "s/-dev//")
DEVELOPMENT = $(shell cat $(TOPDIR)/VERSION | grep 'dev' >/dev/null && echo true)
PROJECT_STEM = $(PROJECT)-$(DIST_VERSION)
FTP_PCKG_DIR = /pub/packages
JANNET_PROJ_DIR = rsync_ssh://ftp.jannet.de:/usr/local/ftp$(FTP_PCKG_DIR)
ifeq ($(DEVELOPMENT),true)
include $(TOPDIR)/make/cfg_dev.mk
else
@ -184,7 +187,14 @@ CC = $(YAMD)gcc
CPP = $(YAMD)g++
RM = rm
AR = ar
INSTALL = install
ifdef INSTALL_LOG
INSTALL=$(MODDIR)/devutil/scripts/log_install.sh -l $(INSTALL_LOG)
else
ifndef INSTALL
INSTALL = install
endif
endif
define make_subdirs
set -e; for D in $(SUBDIRS) ; do make -C $$D ; done
@ -197,3 +207,7 @@ endef
LD_LIBRARY_PATH = $(LIBDIR)
export LD_LIBRARY_PATH
UPLOAD_URL_RPM_BIN=rsync_ssh://ftp.jannet.de:/usr/local/ftp/pub/packages/rpm/bin/
UPLOAD_URL_RPM_SRC=rsync_ssh://ftp.jannet.de:/usr/local/ftp/pub/packages/rpm/src/

View file

@ -1,6 +1,7 @@
s#!/bin/sh
#!/bin/sh
MYNAME=`basename $0`
INSTALL_LOG=/var/tmp/%{name}-buildroot/install.log
usage()
{
@ -80,6 +81,18 @@ echo "It was originally designed to be a versatile pool of"
echo "programming tools to be used in my projects as a freelancing"
echo "software developer."
echo ""
echo "%package -n $NAME-run"
echo "Summary: The runtime library package."
echo "Group: System Environment/Libraries"
echo "%description -n $NAME-run"
echo "runtime library package of the ytools library"
echo ""
echo "%package -n $NAME-devel"
echo "Summary: The development library package."
echo "Group: System Environment/Libraries"
echo "%description -n $NAME-devel"
echo "development library package of the ytools library"
echo ""
echo "%prep"
#echo "echo hallo"
echo "%setup -q -n $NAME-$V"
@ -96,7 +109,13 @@ echo "%install"
#echo 'mkdir -p $RPM_BUILD_ROOT/opt/ytools/lib'
#echo 'mkdir -p $RPM_BUILD_ROOT/usr/share/doc/packages/ytools'
#echo 'pwd'
echo "export ENV_PREFIX=\$RPM_BUILD_ROOT; make install"
echo "export ENV_PREFIX=\$RPM_BUILD_ROOT"
echo "export INSTALL_LOG=$INSTALL_LOG"
echo "mkdir -p `dirname $INSTALL_LOG`"
echo "> $INSTALL_LOG"
echo "make install"
echo "cat $INSTALL_LOG | sed \"s% \$RPM_BUILD_ROOT% %\" | grep -ve 'include\|devel' > $INSTALL_LOG.$NAME"
echo "cat $INSTALL_LOG | sed \"s% \$RPM_BUILD_ROOT% %\" | grep -e 'include\|devel' > $INSTALL_LOG.$NAME-devel"
#echo "install -m 755 $TOPDIR/lib/*.so \$RPM_BUILD_ROOT/opt/ytools/lib"
#echo "install -m 644 $TOPDIR/doc/ytools/dist/* \$RPM_BUILD_ROOT/usr/share/doc/packages/ytools"
#echo "install -m 644 $TOPDIR/COPYING \$RPM_BUILD_ROOT/usr/share/doc/packages/ytools"
@ -106,14 +125,14 @@ echo ""
echo ""
echo "%clean"
echo 'rm -rf $RPM_BUILD_ROOT'
echo ""
echo "%files"
echo "%files -n $NAME-run -f $INSTALL_LOG.$NAME"
echo "%files -n $NAME-devel -f $INSTALL_LOG.$NAME-devel"
echo '%defattr (-, root, root)'
#echo "%dir /opt/ytools/lib"
echo "/opt/ytools/lib"
#echo "/opt/ytools/lib"
#find /opt/ytools/lib -type f
#echo "%dir /usr/share/doc/packages/ytools"
echo "/usr/share/doc/packages/ytools"
#echo "/usr/share/doc/packages/ytools"
#find /usr/share/doc/packages/ytools -type f
echo ""

View file

@ -1,37 +1,71 @@
include $(MODDIR)/make/defs.mk
UPLOAD_SH = $(MODDIR)/devutil/scripts/upload.sh
CLEAN = $(wildcard *.spec *.rpm *~ *.rpmrc)
DIST_SRC_DIR = dist/src/$(PROJECT_STEM)
DIST_PCKG_DIR = dist/pckg
PCKG_TAR = $(PROJECT_STEM).tar.gz
PCKG_RPM_I386 = $(PROJECT_STEM).i386.rpm
PCKG_RPM_SRC = $(PROJECT_STEM).src.rpm
BUILD_ROOT = /usr/src/packages/BUILD
RPMS_DIR = /usr/src/packages/RPMS/i386
SRPMS_DIR = /usr/src/packages/SRPMS
TARGET_HOST = dspcd.jannet.de
TARGET_DIR_TAR = $(FTP_PUB_DIR_ABS)/$(PROJECT)/tar
TARGET_DIR_RPM_I386 = $(FTP_PUB_DIR_ABS)/$(PROJECT)/rpm/i386
TARGET_DIR_RPM_SRC = $(FTP_PUB_DIR_ABS)/$(PROJECT)/rpm/src
TARGET_USER = jan
TARGET_GROUP = jannet
TARGET_FILE_MODE = 755
TARGET_DIR_MODE = 755
TARGET_DIR = $(TARGET_DIR_RPM)/$(PROJECT)
REMOTE_TARGETS = \
$(TARGET_DIR_RPM_SRC)/$(PCKG_RPM_SRC) \
$(TARGET_DIR_RPM_I386)/$(PCKG_RPM_I386) \
$(TARGET_DIR_TAR)/$(PCKG_TAR)
CLEAN += $(wildcard *.spec *.rpm *~ *.rpmrc *.dist .*.swp)
DIST_SRC_DIR = dist/src/$(PROJECT)-$(DIST_VERSION)
DIST_PCKG_DIR = dist/pckg
PCKG_TAR = $(PROJECT)-$(DIST_VERSION).tar.gz
PCKG_RPM_RUN_I386 = $(PROJECT)-run-$(DIST_VERSION).i386.rpm
PCKG_RPM_DEVEL_I386 = $(PROJECT)-devel-$(DIST_VERSION).i386.rpm
PCKG_RPM_SRC = $(PROJECT)-$(DIST_VERSION).src.rpm
#TARGET_HOST = ftp.jannet.de
TARGET_HOST = nb02
TARGET_HOST_LOGIN = root
PCKG_ROOT = $(FTP_PCKG_DIR)/$(PROJECT)
CURRENT_SRC = $(PCKG_ROOT)/src/$(PCKG_TAR)
CURRENT_RPM_RUN_I386 = $(PCKG_ROOT)/rpm/run/$(PCKG_RPM_RUN_I386)
CURRENT_RPM_DEVEL_I386 = $(PCKG_ROOT)/rpm/devel/$(PCKG_RPM_DEVEL_I386)
CURRENT_RPM_SRC = $(PCKG_ROOT)/rpm/src/$(PCKG_RPM_SRC)
test:
echo $(REMOTE_TARGETS)
REMOTE_TARGET_PREFIX = rsync_ssh://$(TARGET_HOST_LOGIN)@$(TARGET_HOST):/usr/local/ftp
REMOTE_TARGETS = \
$(REMOTE_TARGET_PREFIX)$(CURRENT_SRC):640:750:jan.ytsrc \
$(REMOTE_TARGET_PREFIX)$(PCKG_ROOT)/CURRENT_SRC:640:750:jan.ytsrc \
$(REMOTE_TARGET_PREFIX)$(CURRENT_RPM_RUN_I386):640:750:jan.ytrun \
$(REMOTE_TARGET_PREFIX)$(PCKG_ROOT)/CURRENT_RPM_RUN_I386:640:750:jan.ytrun \
$(REMOTE_TARGET_PREFIX)$(CURRENT_RPM_DEVEL_I386):640:750:jan.ytdev \
$(REMOTE_TARGET_PREFIX)$(PCKG_ROOT)/CURRENT_RPM_DEVEL_I386:640:750:jan.ytdev \
$(REMOTE_TARGET_PREFIX)$(CURRENT_RPM_SRC):640:750:jan.ytsrc \
$(REMOTE_TARGET_PREFIX)$(PCKG_ROOT)/CURRENT_RPM_SRC:640:750:jan.ytsrc
DIST_FILES = $(shell echo $(REMOTE_TARGETS) | sed 's/\b.*\///g; s/:.*\b//g')
# $(DIST_FILE_TAR) \
# $(DIST_FILE_RPM_RUN_I386) \
# $(DIST_FILE_RPM_DEVEL_I386) \
# $(DIST_FILE_RPM_SRC)
#BUILD_ROOT = /usr/src/packages/BUILD
RPMS_DIR = /usr/src/packages/RPMS/i386
SRPMS_DIR = /usr/src/packages/SRPMS
#TARGET_DIR_SRC = $(FTP_PCKG_DIR)/src
#TARGET_DIR_RPM_RUN_I386 = $(FTP_PCKG_DIR)/rpm/run/i386
#TARGET_DIR_RPM_DEVEL_I386 = $(FTP_PCKG_DIR)/rpm/devel/i386
#TARGET_DIR_RPM_SRC = $(FTP_PCKG_DIR)/rpm/src
#TARGET_OWNER = jan
#TARGET_GROUP = jannet
#TARGET_FILE_MODE = 644
#TARGET_DIR_MODE = 755
#TARGET_DIR = $(TARGET_DIR_RPM)/$(PROJECT)
#REMOTE_FILES = \
# $(TARGET_DIR_RPM_SRC)/$(PCKG_RPM_SRC) \
# $(TARGET_DIR_RPM_I386)/, $(PCKG_RPM_I386)) \
# $(TARGET_DIR_SRC)/$(PCKG_TAR)
#REMOTE_TARGETS = \
# $(addsuffix :$(TARGET_FILE_MODE):$(TARGET_DIR_MODE):$(TARGET_OWNER).$(TARGET_GROUP),$(REMOTE_FILES))
DIST_DIRS = $(DIST_SRC_DIR) $(DIST_PCKG_DIR)
$(DIST_DIRS):
mkdir -p $@
clean.dist:
rm -rf $(DIST_SRC_DIR) $(DIST_FILE_TAR)
cpmod.dist: clean.dist
rsync_ssh\://% ftp\://% scp\://%:
make $(shell echo $(addprefix $(DIST_PCKG_DIR)/,$(notdir $@)) | sed 's/:.*//g')
$(UPLOAD_SH) $(shell echo $(addprefix $(DIST_PCKG_DIR)/,$(notdir $@)) $@ | sed 's/:.*//g') $@
cpmod.dist:
for mod in $(REQUIRED); do \
make -C $$mod distclean ;\
mkdir -p $(DIST_SRC_DIR)/$$mod ;\
@ -47,36 +81,43 @@ cpmod.dist: clean.dist
--exclude=xml-flat \
-cf - . | tar -C $(DIST_SRC_DIR)/$$mod -xf - ;\
done
touch $@
$(REMOTE_TARGETS):
make $(addprefix $(DIST_PCKG_DIR)/,$(notdir $@))
$(UPLOAD_SH) $(addprefix $(DIST_PCKG_DIR)/,$(notdir $@)) $@
test: $(REMOTE_TARGETS)
cpfiles.dist: clean.dist
cpfiles.dist:
mkdir -p $(DIST_SRC_DIR)
cp Makefile $(DIST_SRC_DIR)
. make/mkspec.sh -V $(DIST_VERSION) -S $(notdir $(DIST_FILE_TAR)) -N $(PROJECT) > $(DIST_SRC_DIR)/$(PROJECT_STEM).spec
sh make/mkspec.sh -V $(DIST_VERSION) -S $(notdir $(PCKG_TAR)) -N $(PROJECT) > $(DIST_SRC_DIR)/$(PROJECT)-$(DIST_VERSION).spec
echo $(DIST_VERSION) > $(DIST_SRC_DIR)/VERSION
touch $@
$(DIST_FILE_TAR): $(DIST_SRC_DIR) $(DIST_PCKG_DIR) cpmod.dist cpfiles.dist
%.tar.gz: cpfiles.dist cpmod.dist
mkdir -p $(DIST_PCKG_DIR)
tar -czvf $@ -C $(dir $(DIST_SRC_DIR)) $(notdir $(DIST_SRC_DIR))
#$(PROJECT).rpmrc: Makefile
# echo "%define _topdir $(shell cd $(TODPIR); pwd)" > $@
%.src.rpm: %.tar.gz
rpm -ts $<
cp $(SRPMS_DIR)/$(notdir $@) $@
$(DIST_FILES_RPM): $(DIST_FILE_TAR)
set -e; \
su - -m -c "cd `pwd`; rpm -ta --clean $<"
$(DIST_PCKG_DIR)/$(PCKG_RPM_RUN_I386) $(DIST_PCKG_DIR)/$(PCKG_RPM_DEVEL_I386): $(DIST_PCKG_DIR)/$(PCKG_TAR)
if [ $< -nt $(RPMS_DIR)/$(notdir $@) ]; then rpm -tb --clean $<; fi
cp $(RPMS_DIR)/$(notdir $@) $@
$(DIST_PCKG_DIR)/CURRENT_%:
echo $(CURRENT_$*) > $@
# set -e; \
# su - -m -c "cd `pwd`; rpm -ta --clean $<"
# --buildroot $(BUILD_ROOT) $<"
# --define _rpmdir$(PCKGDIR) \
# --define _builddir$(shell pwd)
build.dist: $(DIST_DIRS) cpmod.dist cpfiles.dist $(DIST_FILE_TAR)
rpm.dist: $(DIST_FILE_TAR) $(DIST_FILES_RPM)
#$(PROJECT).rpmrc: Makefile
# echo "%define _topdir $(shell cd $(TODPIR); pwd)" > $@
# -- install.dist
upload.dist: build.dist rpm.dist
/usr/bin/rsync -az -v --links -e /usr/bin/ssh $(DIST_FILES_RPM) $(TARGET_USER)@$(TARGET_HOST):$(TARGET_DIR_RPM)
build.dist: $(DIST_FILES)
#upload.dist: build.dist rpm.dist
upload.dist:
make $(REMOTE_TARGETS)
touch $@.done

View file

@ -43,8 +43,8 @@ $(LIB_SO): $(LIB_A)
$(TOPDIR)/include:
mkdir -p $@
$(TOPDIR)/include/%.h: $(TOPDIR)/include %.h
cp $(@F) $@
$(TOPDIR)/include/%.h: %.h
mkdir -p $(dir $@); cp $(@F) $@
%.o: %.cpp
$(CPP) $(CPPFLAGS) -c $<
@ -85,19 +85,19 @@ $(INSTALLED_EXE): $(EXE)
$(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
endif
$(INSTALL_BINDIR)/%.sh: %.sh
install -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
$(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
$(INSTALL_LIBDIR)/%.so: %.so
install -o $(LIBOWNER) -g $(LIBGROUP) -m $(LIBMODE) $< $@
$(INSTALL) -o $(LIBOWNER) -g $(LIBGROUP) -m $(LIBMODE) $< $@
$(INSTALL_LIBDIR)/%.$(SO_SUFFIX): %.$(SO_SUFFIX)
install -o $(LIBOWNER) -g $(LIBGROUP) -m $(LIBMODE) $< $@
$(INSTALL) -o $(LIBOWNER) -g $(LIBGROUP) -m $(LIBMODE) $< $@
$(INSTALL_HDRDIR)/%.h: %.h
install -o $(HDROWNER) -g $(HDRGROUP) -m $(HDRMODE) $< $@
$(INSTALL) -o $(HDROWNER) -g $(HDRGROUP) -m $(HDRMODE) $< $@
$(INSTALL_DOCDIR_DIST)/% $(INSTALL_DOCDIR_DEVEL)/%: %
mkdir -p $(dir $@)
install -o $(HDROWNER) -g $(HDRGROUP) -m $(HDRMODE) $< $@
$(INSTALL) -o $(HDROWNER) -g $(HDRGROUP) -m $(HDRMODE) $< $@
checkroot:
@if [ "$(CHECK_ROOT)" = true -o "$(CHECK_ROOT)" = TRUE ] ; then \