mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
$(TOPDIR), make: Intermediate commit of revised build architecture
This commit is contained in:
parent
e752d5dc7d
commit
405f0aa49d
8 changed files with 212 additions and 31 deletions
42
Makefile
42
Makefile
|
|
@ -1,4 +1,40 @@
|
||||||
MODDIR=.
|
MODDIR=.
|
||||||
CLEAN = include lib
|
SUBDIRS = $(shell find . -type d -maxdepth 1 | grep -ve "include\|CVS\|lib\|nomake\|dist\|old" | grep /)
|
||||||
SUBDIRS = $(shell find . -type d -maxdepth 1 | grep -ve "include\|CVS\|lib\|nomake" | grep /)
|
|
||||||
include $(MODDIR)/make/dirs.mk
|
include $(MODDIR)/make/defs.mk
|
||||||
|
include $(MODDIR)/make/rules.mk
|
||||||
|
include $(MODDIR)/make/libdist.mk
|
||||||
|
|
||||||
|
TEMP_BUILD_DIR = $(shell find $(TEMP_DIR) -name Makefile -maxdepth 2 | tail -1 | xargs dirname)
|
||||||
|
|
||||||
|
all:
|
||||||
|
$(make_subdirs_target)
|
||||||
|
make $(LIB_SO)
|
||||||
|
libstat:
|
||||||
|
$(make_subdirs)
|
||||||
|
clean distclean:
|
||||||
|
$(make_subdirs_target)
|
||||||
|
install: all $(INSTALL_LIBDIR)
|
||||||
|
make -C lib install
|
||||||
|
install-devel: install
|
||||||
|
make -C include install
|
||||||
|
|
||||||
|
libshared: libstat $(LIB_SO)
|
||||||
|
|
||||||
|
distclean: clean.dist
|
||||||
|
|
||||||
|
rpm.untar-build: rpm.untar
|
||||||
|
make -C $(TEMP_BUILD_DIR) rpm.build
|
||||||
|
|
||||||
|
rpm.untar: build.dist
|
||||||
|
rm -rf $(TEMP_DIR)
|
||||||
|
mkdir -p $(TEMP_DIR)
|
||||||
|
tar -xzf $(DIST_FILE) -C $(TEMP_DIR)
|
||||||
|
|
||||||
|
rpm.build-devel:
|
||||||
|
sudo -u root "make install"
|
||||||
|
rpm.build-user:
|
||||||
|
sudo -u root "make install"
|
||||||
|
|
||||||
|
rpm.build: rpm.build-devel rpm.build-user
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1,50 @@
|
||||||
USE_TIMER = true
|
# ytools library
|
||||||
|
# (c) 2001 jannet it services
|
||||||
|
# contact@jannet.de
|
||||||
|
# $Id$
|
||||||
|
|
||||||
|
#CONTRIBDIR = $(TOPDIR)/contrib
|
||||||
|
PREFIX = $(HOME)/dat/test/$(PROJECT)-$(shell cat $(TOPDIR)/VERSION)
|
||||||
|
VAR_PREFIX = $(PREFIX)/var
|
||||||
|
EXEGROUP = $(shell id -g)
|
||||||
|
EXEOWNER = $(shell whoami)
|
||||||
|
EXEMODE = 770
|
||||||
|
CFGGROUP = $(shell id -g)
|
||||||
|
CFGOWNER = $(shell whoami)
|
||||||
|
CFGMODE = 660
|
||||||
|
CTRLGROUP = $(shell id -g)
|
||||||
|
CTRLOWNER = $(shell whoami)
|
||||||
|
CTRLMODE = 770
|
||||||
|
INITGROUP = $(shell id -g)
|
||||||
|
INITOWNER = $(shell whoami)
|
||||||
|
INITMODE = 770
|
||||||
|
LIBGROUP = $(shell id -g)
|
||||||
|
LIBOWNER = $(shell whoami)
|
||||||
|
LIBMODE = 770
|
||||||
|
HDRGROUP = $(shell id -g)
|
||||||
|
HDROWNER = $(shell whoami)
|
||||||
|
HDRMODE = 644
|
||||||
|
INITDIR = $(HOME)/bin
|
||||||
|
PIDDIR = $(VAR_PREFIX)/run
|
||||||
|
DAEMON_RUN_DIR = $(HOME)
|
||||||
|
DAEMON_RUN_USER = $(shell whoami)
|
||||||
|
DAEMON_RUN_GROUP = $(shell id -g)
|
||||||
|
LOGNAME = $(shell whoami)-$(PROJECT)
|
||||||
|
DOWNLOADDIRS = root@cvs.jannet.de:/usr/local/httpd/htdocs/www.jannet.de_443/$(CUSTOMER)/projects/$(PROJECT)
|
||||||
|
CLIENT_INC_DIR = $(TOPDIR)/../shared/tools
|
||||||
|
CONFIG_DIR = $(PREFIX)/etc
|
||||||
|
CONFIG_FILE = $(CONFIG_DIR)/$(PROJECT).cfg
|
||||||
|
LIBTYPE = static
|
||||||
|
|
||||||
|
# -- debugging options
|
||||||
|
|
||||||
|
# for using the dbmalloc lib, before you will need to do:
|
||||||
|
# cd $(MODDIR)/contrib/dbmalloc; tar -xzf dbmalloc-ver.sion.tar.gz
|
||||||
|
COMPILE_DEBUG_CODE = true
|
||||||
|
#USE_DBMALLOC = true
|
||||||
|
#USE_MEMWATCH = true
|
||||||
|
#USE_EFENCE = true
|
||||||
|
USE_COMPILER_DEBUG_OPTS = true
|
||||||
|
#USE_COMPILER_OPTIMIZATION = true
|
||||||
|
USE_TRACING = true
|
||||||
|
USE_TIMER = true
|
||||||
|
|
|
||||||
|
|
@ -1 +1,49 @@
|
||||||
USE_TIMER = true
|
# ytools library
|
||||||
|
# (c) 2001 jannet it services
|
||||||
|
# contact@jannet.de
|
||||||
|
# $Id$
|
||||||
|
|
||||||
|
#CONTRIBDIR = $(TOPDIR)/contrib
|
||||||
|
PREFIX = /opt/$(PROJECT)
|
||||||
|
VAR_PREFIX = $(PREFIX)/var
|
||||||
|
EXEGROUP = root
|
||||||
|
EXEOWNER = root
|
||||||
|
EXEMODE = 755
|
||||||
|
CFGGROUP = root
|
||||||
|
CFGOWNER = root
|
||||||
|
CFGMODE = 640
|
||||||
|
CTRLGROUP = root
|
||||||
|
CTRLOWNER = root
|
||||||
|
CTRLMODE = 750
|
||||||
|
INITGROUP = root
|
||||||
|
INITOWNER = root
|
||||||
|
INITMODE = 740
|
||||||
|
LIBGROUP = root
|
||||||
|
LIBOWNER = root
|
||||||
|
LIBMODE = 755
|
||||||
|
HDRGROUP = root
|
||||||
|
HDROWNER = root
|
||||||
|
HDRMODE = 644
|
||||||
|
INITDIR = /etc/init.d
|
||||||
|
PIDDIR = $(VAR_PREFIX)/run
|
||||||
|
DAEMON_RUN_DIR = /opt/$(PROJECT)
|
||||||
|
DAEMON_RUN_USER = dsprun
|
||||||
|
DAEMON_RUN_GROUP = dsprun
|
||||||
|
LOGNAME = $(PROJECT)
|
||||||
|
DOWNLOADDIRS = root@cvs.jannet.de:/usr/local/httpd/htdocs/www.jannet.de_443/$(CUSTOMER)/projects/$(PROJECT)
|
||||||
|
CONFIG_DIR = $(PREFIX)/etc
|
||||||
|
CONFIG_FILE = $(CONFIG_DIR)/$(PROJECT).cfg
|
||||||
|
LIBTYPE = static
|
||||||
|
|
||||||
|
# -- debugging options
|
||||||
|
|
||||||
|
# for using the dbmalloc lib, before you will need to do:
|
||||||
|
# cd $(MODDIR)/contrib/dbmalloc; tar -xzf dbmalloc-ver.sion.tar.gz
|
||||||
|
#COMPILE_DEBUG_CODE = true
|
||||||
|
#USE_DBMALLOC = true
|
||||||
|
#USE_MEMWATCH = true
|
||||||
|
#USE_EFENCE = true
|
||||||
|
#USE_COMPILER_DEBUG_OPTS = true
|
||||||
|
#USE_COMPILER_OPTIMIZATION = true
|
||||||
|
#USE_TRACING = true
|
||||||
|
#USE_TIMER = true
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,25 @@
|
||||||
# contact@jannet.de
|
# contact@jannet.de
|
||||||
# $Id$
|
# $Id$
|
||||||
|
|
||||||
# doesn't work :-(
|
|
||||||
ifndef PROJECT
|
ifndef PROJECT
|
||||||
PROJECT := yannet
|
PROJECT := ytools
|
||||||
LIBNAME := yannet
|
REQUIRED = make misc slog platform \
|
||||||
else
|
devutil \
|
||||||
LIBNAME := $(PROJECT)
|
hash \
|
||||||
|
hexdump \
|
||||||
|
lbuffer \
|
||||||
|
debug \
|
||||||
|
cfgfile gtopts \
|
||||||
|
lock sigsync shmem \
|
||||||
|
usrv uclnt statecheck msgfmt \
|
||||||
|
YMisc YError \
|
||||||
|
YThread YMutex YCbContr \
|
||||||
|
YTimeB YStopWatch YStopWatchList YStopWatchQueue YStopWatchThreadList \
|
||||||
|
lib
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
LIBNAME := $(PROJECT)
|
||||||
|
|
||||||
ifndef TOPDIR
|
ifndef TOPDIR
|
||||||
TOPDIR := $(MODDIR)
|
TOPDIR := $(MODDIR)
|
||||||
endif
|
endif
|
||||||
|
|
@ -42,7 +53,8 @@ GCC_REV = $(shell gcc -v 2>&1 | grep version | awk '{ split($$3,a,"."); pri
|
||||||
|
|
||||||
CPP = g++
|
CPP = g++
|
||||||
|
|
||||||
#LIBNAME = $(PROJECT)
|
EXE_SH = $(wildcard *.sh)
|
||||||
|
|
||||||
CFILES = $(wildcard *.c)
|
CFILES = $(wildcard *.c)
|
||||||
CPPFILES = $(wildcard *.cc *.cpp)
|
CPPFILES = $(wildcard *.cc *.cpp)
|
||||||
CALLSRC = $(CFILES) $(CPPFILES)
|
CALLSRC = $(CFILES) $(CPPFILES)
|
||||||
|
|
@ -85,13 +97,18 @@ ALL_CSRC = $(LOCAL_CSRC) $(PREREQ_CSRC)
|
||||||
TEXTCLEAN = $(wildcard *~ .*~ .*.swp *.rep)
|
TEXTCLEAN = $(wildcard *~ .*~ .*.swp *.rep)
|
||||||
INCLUDE = -I. -I$(TOPDIR)/include -I$(MODDIR)/include $(PROJECT_INCLUDE) $(LOCAL_INCLUDE)
|
INCLUDE = -I. -I$(TOPDIR)/include -I$(MODDIR)/include $(PROJECT_INCLUDE) $(LOCAL_INCLUDE)
|
||||||
INSTALL_LIBDIR = $(PREFIX)/lib
|
INSTALL_LIBDIR = $(PREFIX)/lib
|
||||||
|
INSTALL_HDRDIR = $(PREFIX)/include
|
||||||
|
INSTALL_BINDIR = $(PREFIX)/bin
|
||||||
|
|
||||||
|
SO_SUFFIX = so.$(VERSION)
|
||||||
LIB_A = $(LIBDIR)/lib$(LIBNAME).a
|
LIB_A = $(LIBDIR)/lib$(LIBNAME).a
|
||||||
ifeq ($(LIBTYPE),shared)
|
LIB_SO = $(LIBDIR)/lib$(LIBNAME).$(SO_SUFFIX)
|
||||||
LIB_SO = $(LIBDIR)/lib$(LIBNAME).so
|
INSTALLED_LIB_SO = $(INSTALL_LIBDIR)/lib$(LIBNAME).$(SO_SUFFIX)
|
||||||
INSTALLED_LIB_SO = $(INSTALL_LIBDIR)/lib$(LIBNAME).so
|
INSTALLED_LIB_A = $(INSTALL_LIBDIR)/lib$(LIBNAME).a
|
||||||
else
|
|
||||||
endif
|
INSTALLED_EXE = $(INSTALL_BINDIR)/$(EXE)
|
||||||
|
INSTALLED_EXE_SH = $(addprefix $(INSTALL_BINDIR)/,$(EXE_SH))
|
||||||
|
|
||||||
MEMBERS = $(LIB_A)($(OBJ))
|
MEMBERS = $(LIB_A)($(OBJ))
|
||||||
#PREFIX = ../# CAUTION: This breaks the installation in the project
|
#PREFIX = ../# CAUTION: This breaks the installation in the project
|
||||||
#MEMWATCH = -DMEMWATCH -DMW_STDIO
|
#MEMWATCH = -DMEMWATCH -DMW_STDIO
|
||||||
|
|
|
||||||
10
make/dist.mk
10
make/dist.mk
|
|
@ -17,6 +17,7 @@ DOWNLOAD_REFERRER_DIRS = $(addprefix $(UPLOAD_DOCUMENT_ROOT)/, \
|
||||||
|
|
||||||
# -- general, and less important
|
# -- general, and less important
|
||||||
DISTDIR = $(TOPDIR)/dist
|
DISTDIR = $(TOPDIR)/dist
|
||||||
|
DIST_FILE = $(DISTDIR)/$(PROJECT)-$(VERSION).tar.gz
|
||||||
TMPHTML=$(DISTDIR)/html
|
TMPHTML=$(DISTDIR)/html
|
||||||
DOWNLOAD_URLDIR=$(DOWNLOAD_SERVER)/$(URL_RELATIVE_PATH)
|
DOWNLOAD_URLDIR=$(DOWNLOAD_SERVER)/$(URL_RELATIVE_PATH)
|
||||||
TARGET_DIR = $(UPLOAD_DOCUMENT_ROOT)/$(UPLOAD_VIRTUAL_SERVER_ROOT)/$(URL_RELATIVE_PATH)
|
TARGET_DIR = $(UPLOAD_DOCUMENT_ROOT)/$(UPLOAD_VIRTUAL_SERVER_ROOT)/$(URL_RELATIVE_PATH)
|
||||||
|
|
@ -45,6 +46,10 @@ $(SSI_PREFIX)%.html: $(TMPHTML) $(SSI_DOWNLOAD_TMPL)
|
||||||
s/_SIZE_/$$SIZE/g;\
|
s/_SIZE_/$$SIZE/g;\
|
||||||
" > $@
|
" > $@
|
||||||
|
|
||||||
|
remove_dist:
|
||||||
|
rm -rf $(DISTDIR)
|
||||||
|
|
||||||
|
distclean: remove_dist
|
||||||
$(DIST_FILE): distclean
|
$(DIST_FILE): distclean
|
||||||
mkdir -p $(DISTDIR)/src/$(PROJECT)
|
mkdir -p $(DISTDIR)/src/$(PROJECT)
|
||||||
mkdir -p $(DISTDIR)/pckg
|
mkdir -p $(DISTDIR)/pckg
|
||||||
|
|
@ -54,7 +59,10 @@ $(DIST_FILE): distclean
|
||||||
grep -ve 'CVS\|contrib/nomake\|tar.gz\|/dist/\|experimental' | \
|
grep -ve 'CVS\|contrib/nomake\|tar.gz\|/dist/\|experimental' | \
|
||||||
xargs tar -cf - | tar -C $(DISTDIR)/src/$(PROJECT) -xf -
|
xargs tar -cf - | tar -C $(DISTDIR)/src/$(PROJECT) -xf -
|
||||||
echo $(DIST_VERSION) > $(DISTDIR)/src/$(PROJECT)/VERSION ;\
|
echo $(DIST_VERSION) > $(DISTDIR)/src/$(PROJECT)/VERSION ;\
|
||||||
for mod in $(REQUIRED) ; do make -C $(MODDIR)/$$mod clean; cp -r $(MODDIR)/$$mod $(DISTDIR)/src/$(PROJECT)/mod/ ; done ;\
|
echo $(REQUIRED) | while read mod ;\
|
||||||
|
do make -C $(MODDIR)/$$mod clean ;\
|
||||||
|
cp -r $(MODDIR)/$$mod $(DISTDIR)/src/$(PROJECT)/mod/ ;\
|
||||||
|
done ;\
|
||||||
cp $(MODDIR)/Makefile $(DISTDIR)/src/$(PROJECT)/mod/ ;\
|
cp $(MODDIR)/Makefile $(DISTDIR)/src/$(PROJECT)/mod/ ;\
|
||||||
tar -czv -C $(DISTDIR)/src/ -f $(DIST_FILE) $(PROJECT)
|
tar -czv -C $(DISTDIR)/src/ -f $(DIST_FILE) $(PROJECT)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,4 +7,4 @@ EXE = $(ALL)
|
||||||
include $(MODDIR)/make/defs.mk
|
include $(MODDIR)/make/defs.mk
|
||||||
include $(MODDIR)/make/rules.mk
|
include $(MODDIR)/make/rules.mk
|
||||||
clean: execlean localclean
|
clean: execlean localclean
|
||||||
install: $(ALL) installexe
|
install: $(ALL) $(INSTALLED_EXE)
|
||||||
|
|
|
||||||
|
|
@ -27,11 +27,14 @@ $(LIBDIR):
|
||||||
moc_%.cpp: %.h
|
moc_%.cpp: %.h
|
||||||
$(MOC) -o $@ $<
|
$(MOC) -o $@ $<
|
||||||
|
|
||||||
ifeq ($(LIBTYPE),shared)
|
#ifeq ($(LIBTYPE),shared)
|
||||||
lib%.so: %.o $(LIB_SO)
|
#lib%.so: %.o $(LIB_SO)
|
||||||
else
|
#else
|
||||||
|
#lib%.so: %.o
|
||||||
|
#endif
|
||||||
|
# $(CC) $< $(LDFLAGS) -o $@
|
||||||
|
|
||||||
lib%.so: %.o
|
lib%.so: %.o
|
||||||
endif
|
|
||||||
$(CC) $< $(LDFLAGS) -o $@
|
$(CC) $< $(LDFLAGS) -o $@
|
||||||
|
|
||||||
$(LIB_SO): $(LIB_A)
|
$(LIB_SO): $(LIB_A)
|
||||||
|
|
@ -66,15 +69,30 @@ endif
|
||||||
$(LIBS):
|
$(LIBS):
|
||||||
make -C $(LIBDIR) all
|
make -C $(LIBDIR) all
|
||||||
|
|
||||||
$(INSTALL_LIBDIR)/%.so: %.so
|
$(INSTALL_HDRDIR) $(INSTALL_BINDIR) $(INSTALL_LIBDIR):
|
||||||
$(INSTALL) $< $@
|
mkdir -p $@
|
||||||
|
|
||||||
$(PREFIX)/bin/$(EXE): $(EXE)
|
$(INSTALLED_LIB_SO) $(INSTALLED_LIB_A): $(INSTALL_LIBDIR)
|
||||||
$(INSTALL) $(EXE) $(PREFIX)/bin/
|
|
||||||
|
|
||||||
$(INSTALLED_LIB_SO): $(LIB_SO)
|
#$(INSTALL_BINDIR)/%.bin: %.bin
|
||||||
|
# $(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
|
||||||
|
|
||||||
|
ifneq ($(EXE),)
|
||||||
|
$(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_LIBDIR)/%.$(SO_SUFFIX): %.$(SO_SUFFIX)
|
||||||
|
install -o $(LIBOWNER) -g $(LIBGROUP) -m $(LIBMODE) $< $@
|
||||||
|
|
||||||
|
$(INSTALL_HDRDIR)/%.h: %.h
|
||||||
|
install -o $(HDROWNER) -g $(HDRGROUP) -m $(HDRMODE) $< $@
|
||||||
|
|
||||||
|
|
||||||
checkroot:
|
checkroot:
|
||||||
@if [ "$(CHECK_ROOT)" = true -o "$(CHECK_ROOT)" = TRUE ] ; then \
|
@if [ "$(CHECK_ROOT)" = true -o "$(CHECK_ROOT)" = TRUE ] ; then \
|
||||||
echo "Error: You can only do this if either" ;\
|
echo "Error: You can only do this if either" ;\
|
||||||
|
|
@ -82,12 +100,11 @@ checkroot:
|
||||||
echo " b) the Makefile variable CHECK_ROOT does not contain \"true\" as value." ;\
|
echo " b) the Makefile variable CHECK_ROOT does not contain \"true\" as value." ;\
|
||||||
fi
|
fi
|
||||||
|
|
||||||
installexe: all checkroot $(PREFIX)/bin/$(EXE)
|
installexe: all checkroot $(INSTALLED_EXE)
|
||||||
|
|
||||||
installso: all checkroot $(PREFIX)/lib $(INSTALLED_SHOBJS)
|
installso: all checkroot $(INSTALL_LIBDIR) $(INSTALLED_SHOBJS)
|
||||||
|
|
||||||
installsh: all checkroot $(PREFIX)/bin
|
installsh: all checkroot $(INSTALL_BINDIR) $(INSTALLED_EXE_SH)
|
||||||
$(INSTALL) $(SHSCRIPTS) $(PREFIX)/bin/
|
|
||||||
|
|
||||||
pckgclean:
|
pckgclean:
|
||||||
rm -rf *.zip *.tar.gz *.rpm *.deb
|
rm -rf *.zip *.tar.gz *.rpm *.deb
|
||||||
|
|
@ -128,3 +145,8 @@ profclean:
|
||||||
|
|
||||||
timerclean:
|
timerclean:
|
||||||
rm -f timers_*.h
|
rm -f timers_*.h
|
||||||
|
|
||||||
|
install_libdir: $(INSTALL_LIBDIR)
|
||||||
|
install_bindir: $(INSTALL_BINDIR)
|
||||||
|
install_hdrdir: $(INSTALL_HDRDIR)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
include $(MODDIR)/make/defs.mk
|
include $(MODDIR)/make/defs.mk
|
||||||
include $(MODDIR)/make/rules.mk
|
include $(MODDIR)/make/rules.mk
|
||||||
|
distclean: textclean localclean
|
||||||
clean: textclean localclean
|
clean: textclean localclean
|
||||||
install: # nothing to be done
|
install: # nothing to be done
|
||||||
all: # nothing to be done
|
all: # nothing to be done
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue