diff --git a/make/cfg_dev.mk b/make/cfg_dev.mk index 60b23066..e5921f4c 100644 --- a/make/cfg_dev.mk +++ b/make/cfg_dev.mk @@ -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 diff --git a/make/defs-orig.mk b/make/defs-orig.mk index 31e30e87..ec35fc25 100644 --- a/make/defs-orig.mk +++ b/make/defs-orig.mk @@ -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/ + + diff --git a/make/mkspec.sh b/make/mkspec.sh index 5d1bfafe..1dad9ff8 100644 --- a/make/mkspec.sh +++ b/make/mkspec.sh @@ -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 "" diff --git a/make/rpmdist.mk b/make/rpmdist.mk index 8b76ddec..8c109c18 100644 --- a/make/rpmdist.mk +++ b/make/rpmdist.mk @@ -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 diff --git a/make/rules.mk b/make/rules.mk index 8e37c4c2..aeb7d491 100644 --- a/make/rules.mk +++ b/make/rules.mk @@ -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 \