$(TOPDIR), make: Intermediate commit of revised build architecture

This commit is contained in:
Jan Lindemann 2002-06-08 09:26:58 +00:00 committed by Jan Lindemann
commit 405f0aa49d
8 changed files with 212 additions and 31 deletions

View file

@ -1,4 +1,40 @@
MODDIR=.
CLEAN = include lib
SUBDIRS = $(shell find . -type d -maxdepth 1 | grep -ve "include\|CVS\|lib\|nomake" | grep /)
include $(MODDIR)/make/dirs.mk
SUBDIRS = $(shell find . -type d -maxdepth 1 | grep -ve "include\|CVS\|lib\|nomake\|dist\|old" | grep /)
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

View file

@ -1 +1,50 @@
# 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

View file

@ -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

View file

@ -3,14 +3,25 @@
# contact@jannet.de
# $Id$
# doesn't work :-(
ifndef PROJECT
PROJECT := yannet
LIBNAME := yannet
else
LIBNAME := $(PROJECT)
PROJECT := ytools
REQUIRED = make misc slog platform \
devutil \
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
LIBNAME := $(PROJECT)
ifndef TOPDIR
TOPDIR := $(MODDIR)
endif
@ -42,7 +53,8 @@ GCC_REV = $(shell gcc -v 2>&1 | grep version | awk '{ split($$3,a,"."); pri
CPP = g++
#LIBNAME = $(PROJECT)
EXE_SH = $(wildcard *.sh)
CFILES = $(wildcard *.c)
CPPFILES = $(wildcard *.cc *.cpp)
CALLSRC = $(CFILES) $(CPPFILES)
@ -85,13 +97,18 @@ ALL_CSRC = $(LOCAL_CSRC) $(PREREQ_CSRC)
TEXTCLEAN = $(wildcard *~ .*~ .*.swp *.rep)
INCLUDE = -I. -I$(TOPDIR)/include -I$(MODDIR)/include $(PROJECT_INCLUDE) $(LOCAL_INCLUDE)
INSTALL_LIBDIR = $(PREFIX)/lib
INSTALL_HDRDIR = $(PREFIX)/include
INSTALL_BINDIR = $(PREFIX)/bin
SO_SUFFIX = so.$(VERSION)
LIB_A = $(LIBDIR)/lib$(LIBNAME).a
ifeq ($(LIBTYPE),shared)
LIB_SO = $(LIBDIR)/lib$(LIBNAME).so
INSTALLED_LIB_SO = $(INSTALL_LIBDIR)/lib$(LIBNAME).so
else
endif
LIB_SO = $(LIBDIR)/lib$(LIBNAME).$(SO_SUFFIX)
INSTALLED_LIB_SO = $(INSTALL_LIBDIR)/lib$(LIBNAME).$(SO_SUFFIX)
INSTALLED_LIB_A = $(INSTALL_LIBDIR)/lib$(LIBNAME).a
INSTALLED_EXE = $(INSTALL_BINDIR)/$(EXE)
INSTALLED_EXE_SH = $(addprefix $(INSTALL_BINDIR)/,$(EXE_SH))
MEMBERS = $(LIB_A)($(OBJ))
#PREFIX = ../# CAUTION: This breaks the installation in the project
#MEMWATCH = -DMEMWATCH -DMW_STDIO

View file

@ -17,6 +17,7 @@ DOWNLOAD_REFERRER_DIRS = $(addprefix $(UPLOAD_DOCUMENT_ROOT)/, \
# -- general, and less important
DISTDIR = $(TOPDIR)/dist
DIST_FILE = $(DISTDIR)/$(PROJECT)-$(VERSION).tar.gz
TMPHTML=$(DISTDIR)/html
DOWNLOAD_URLDIR=$(DOWNLOAD_SERVER)/$(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;\
" > $@
remove_dist:
rm -rf $(DISTDIR)
distclean: remove_dist
$(DIST_FILE): distclean
mkdir -p $(DISTDIR)/src/$(PROJECT)
mkdir -p $(DISTDIR)/pckg
@ -54,7 +59,10 @@ $(DIST_FILE): distclean
grep -ve 'CVS\|contrib/nomake\|tar.gz\|/dist/\|experimental' | \
xargs tar -cf - | tar -C $(DISTDIR)/src/$(PROJECT) -xf -
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/ ;\
tar -czv -C $(DISTDIR)/src/ -f $(DIST_FILE) $(PROJECT)

View file

@ -7,4 +7,4 @@ EXE = $(ALL)
include $(MODDIR)/make/defs.mk
include $(MODDIR)/make/rules.mk
clean: execlean localclean
install: $(ALL) installexe
install: $(ALL) $(INSTALLED_EXE)

View file

@ -27,11 +27,14 @@ $(LIBDIR):
moc_%.cpp: %.h
$(MOC) -o $@ $<
ifeq ($(LIBTYPE),shared)
lib%.so: %.o $(LIB_SO)
else
#ifeq ($(LIBTYPE),shared)
#lib%.so: %.o $(LIB_SO)
#else
#lib%.so: %.o
#endif
# $(CC) $< $(LDFLAGS) -o $@
lib%.so: %.o
endif
$(CC) $< $(LDFLAGS) -o $@
$(LIB_SO): $(LIB_A)
@ -66,15 +69,30 @@ endif
$(LIBS):
make -C $(LIBDIR) all
$(INSTALL_LIBDIR)/%.so: %.so
$(INSTALL) $< $@
$(INSTALL_HDRDIR) $(INSTALL_BINDIR) $(INSTALL_LIBDIR):
mkdir -p $@
$(PREFIX)/bin/$(EXE): $(EXE)
$(INSTALL) $(EXE) $(PREFIX)/bin/
$(INSTALLED_LIB_SO) $(INSTALLED_LIB_A): $(INSTALL_LIBDIR)
$(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_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:
@if [ "$(CHECK_ROOT)" = true -o "$(CHECK_ROOT)" = TRUE ] ; then \
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." ;\
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
$(INSTALL) $(SHSCRIPTS) $(PREFIX)/bin/
installsh: all checkroot $(INSTALL_BINDIR) $(INSTALLED_EXE_SH)
pckgclean:
rm -rf *.zip *.tar.gz *.rpm *.deb
@ -128,3 +145,8 @@ profclean:
timerclean:
rm -f timers_*.h
install_libdir: $(INSTALL_LIBDIR)
install_bindir: $(INSTALL_BINDIR)
install_hdrdir: $(INSTALL_HDRDIR)

View file

@ -5,6 +5,7 @@
include $(MODDIR)/make/defs.mk
include $(MODDIR)/make/rules.mk
distclean: textclean localclean
clean: textclean localclean
install: # nothing to be done
all: # nothing to be done