$(TOPDIR), make, scripts: Merged changes from V_1_1_31_6_POST_ACCEPTANCE

This commit is contained in:
Jan Lindemann 2011-05-15 18:28:19 +00:00 committed by Jan Lindemann
commit d1857e8d77
14 changed files with 251 additions and 60 deletions

View file

@ -397,3 +397,7 @@ o merged changes from V_1_1_29_40_POST_ACCEPTANCE:
Version 1.1.31.0
----------------
o YAbstractFamilyMember: added support for garbage collector
1.2.0-0
-------
o merged changes from V_1_1_31_6_POST_ACCEPTANCE

View file

@ -19,7 +19,11 @@ SUBDIRS = inst/pre \
YMem YOptString \
gtopts \
lock sigsync shmem \
contr cfgfile \
contr/YRrBuf \
contr/YRrLogBuf \
contr/YStringTree \
cfgfile \
contr \
YLoadableObject \
msgfmt eloop statecheck \
YThread YEvent YCbContr \

View file

@ -1 +1 @@
1.1.31-10-dev
1.2.0-0-dev

View file

@ -1,18 +1,51 @@
CORE_DUMPER = $(shell echo -e "quit" | gdb --core=$(CORE) 2>&1 | \
sed '/Core was generated/ !d; s/Core was generated by `//; s/ .*//' | xargs -r which)
ifeq ($(CORE_DUMPER),)
CORE_DUMPER = $(EXE)
CORE_DUMPER = $(EXE_PATH)
endif
PID = $(shell ps aux | sed "/$(EXE)/ !d; /sed/ d" | awk '{print $$2}')
PID = $(shell ps aux | sed "/$(notdir $(EXE_PATH))/ !d; /sed/ d" | awk '{print $$2}')
all:
kdbg gdb ddd:
$@ $(CORE_DUMPER) $(firstword $(CORE))
gdb ddd:
ifneq ($(CORE),)
$@ --core=$(firstword $(CORE)) --args $(CORE_DUMPER) $(EXE_ARGS)
else
$@ --args $(CORE_DUMPER) $(EXE_ARGS)
endif
kdbg:
$@ $(CORE_DUMPER) $(firstword $(CORE)) -a "$(EXE_ARGS)"
cgdb:
ifneq ($(CORE),)
$@ -- --core=$(firstword $(CORE)) --args $(CORE_DUMPER) $(EXE_ARGS)
else
$@ -- --args $(CORE_DUMPER) $(EXE_ARGS)
endif
attach:
gdb ./$(EXE) -p $(PID)
gdb $(EXE_PATH) -p $(PID)
attach-strace:
strace -f ./$(EXE) -p $(PID)
strace -f $(EXE_PATH) -p $(PID)
report:
generate-coredump-report.sh -l
mkdir -p crashes
if ls *core*.txt.bz2* >/dev/null 2>&1; then mv *core*.txt.bz2 crashes/; fi
view-report:
less `ls -rt crashes/*core*.txt.bz2 | tail -1`
localcore:
echo core.%h.%e.%p | sudo tee /proc/sys/kernel/core_pattern
centralcore:
echo /var/cores/core.%h.%e.%p | sudo tee /proc/sys/kernel/core_pattern
coreclean: centralcore-clean
centralcore-clean:
rm -f /var/cores/core* core*

View file

@ -5,14 +5,15 @@
# -- files
#CONTRIBDIR ?= $(TOPDIR)/contrib
PREFIX ?= $(ENV_PREFIX)$(HOME)/dat/test/$(FLAVOUR_PREFIX)$(PROJECT)-$(VERSION)
PROJECT_DIRNAME ?= $(PROJECT)
PREFIX ?= $(ENV_PREFIX)$(HOME)/dat/test/$(FLAVOUR_PREFIX)$(PROJECT_DIRNAME)-$(VERSION)
VAR_PREFIX ?= $(PREFIX)/var
DOC_PREFIX ?= $(PREFIX)/doc/$(PROJECT)
EXE_PREFIX ?= $(PREFIX)
INIT_PREFIX ?= $(EXE_PREFIX)
HTDOCS_PREFIX ?= $(ENV_PREFIX)$(HOME)/srv/www/htdocs
SYSCFG_DIR ?= $(PREFIX)/sysconfig
CONFIG_DIR ?= $(ENV_PREFIX)$(HOME)/etc/$(FLAVOUR_PATH_PREFIX)$(PROJECT)
CONFIG_DIR ?= $(ENV_PREFIX)$(HOME)/etc/$(FLAVOUR_PATH_PREFIX)$(PROJECT_DIRNAME)
LD_CONF_DIR ?= $(ENV_PREFIX)$(HOME)/etc/ld.so.conf.d
LOGROT_DIR ?= $(ENV_PREFIX)$(HOME)/etc/logrotate.d
RSYSLOG_DIR ?= $(ENV_PREFIX)$(HOME)/etc/rsyslog.d

View file

@ -5,14 +5,15 @@
# -- files
#CONTRIBDIR ?= $(TOPDIR)/contrib
PREFIX ?= $(ENV_PREFIX)/opt/$(FLAVOUR_PATH_PREFIX)$(PROJECT)
PROJECT_DIRNAME ?= $(PROJECT)
PREFIX ?= $(ENV_PREFIX)/opt/$(FLAVOUR_PATH_PREFIX)$(PROJECT_DIRNAME)
VAR_PREFIX ?= $(ENV_PREFIX)/var/$(FLAVOUR_PATH_PREFIX)opt
DOC_PREFIX ?= $(ENV_PREFIX)/usr/share/doc/packages/$(FLAVOUR_PREFIX)$(PROJECT)
DOC_PREFIX ?= $(ENV_PREFIX)/usr/share/doc/packages/$(FLAVOUR_PREFIX)$(PROJECT_DIRNAME)
EXE_PREFIX ?= $(PREFIX)
INIT_PREFIX ?= $(ENV_PREFIX)/etc$(FLAVOUR_PATH_SUFFIX)
HTDOCS_PREFIX ?= $(ENV_PREFIX)/srv/www/htdocs
SYSCFG_DIR ?= $(ENV_PREFIX)/etc/$(FLAVOUR_PATH_PREFIX)sysconfig
CONFIG_DIR ?= $(ENV_PREFIX)/etc/opt/$(FLAVOUR_PATH_PREFIX)$(PROJECT)
CONFIG_DIR ?= $(ENV_PREFIX)/etc/opt/$(FLAVOUR_PATH_PREFIX)$(PROJECT_DIRNAME)
LD_CONF_DIR ?= $(ENV_PREFIX)/etc/ld.so.conf.d
LOGROT_DIR ?= $(ENV_PREFIX)/etc/logrotate.d
RSYSLOG_DIR ?= $(ENV_PREFIX)/etc/rsyslog.d

View file

@ -111,10 +111,15 @@ else
endif
endif
CFLAGS += -D_FILE_OFFSET_BITS=64 -Wall -Wno-unused-value -fexceptions
CPPFLAGS += -D_FILE_OFFSET_BITS=64 -Wall -Wno-unused-value -Wno-deprecated
CFLAGS += -D_FILE_OFFSET_BITS=64 -Wall -Wno-unused-value -fexceptions -DPROJECT_STR=\"$(PROJECT)\"
CPPFLAGS += -D_FILE_OFFSET_BITS=64 -Wall -Wno-unused-value -Wno-deprecated -DPROJECT_STR=\"$(PROJECT)\"
LDFLAGS += -Wall
ifneq ($(LOG_QUAL_PREFIX),)
PROJECT_CFLAGS += -DKEEP_FILES_OPEN -DLOG_QUAL_PREFIX=\"$(LOG_QUAL_PREFIX)\"
PROJECT_CPPFLAGS += -DKEEP_FILES_OPEN -DLOG_QUAL_PREFIX=\"$(LOG_QUAL_PREFIX)\"
endif
ifeq ($(CATCH_ONLY_YERROR),true)
CFLAGS += -DCATCH_ONLY_YERROR
CPPFLAGS += -DCATCH_ONLY_YERROR
@ -185,7 +190,7 @@ ALL_H += $(LOCAL_H) $(PREREQ_H)
SRC_ALL_CPP += $(LOCAL_C) $(LOCAL_CPP) $(LOCAL_H)
SRC_C += $(filter %.c, $(SRC_ALL_CPP))
SRC_CPP += $(filter %.cc %.cpp %.C, $(SRC_ALL_CPP))
OBJ += $(patsubst %.cpp,%.o,$(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(filter %.c %.cpp %.cc, $(SRC_ALL_CPP)))))
OBJ += $(patsubst %.C,%.o,$(patsubst %.cpp,%.o,$(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(filter %.c %.cpp %.cc %.C, $(SRC_ALL_CPP))))))
OBJ += $(patsubst %.S,%.o,$(SFILES))
PREREQ_DIR += $(addprefix $(MODDIR)/,$(LOCAL_PREREQ))
@ -217,7 +222,7 @@ UPLOAD_URL_RPM_SRC = rsync_ssh://ftp.jannet.de:/home/ftp/dat/pub/packages/rp
PUBLIC_PATH_DEVEL_DOC = /proj/devel-docs
UPLOAD_URL_DEVEL_DOC = rsync_ssh://root@feitnix.jannet.de:/srv/www/htdocs/jannet.de_443/$(PUBLIC_PATH_DEVEL_DOC)
IMAGES += $(wildcard *.png *.jpg *.bmp)
IMAGES += $(wildcard *.png *.jpg *.bmp *.gif)
# -- standard dirs and files for build and install
@ -692,15 +697,19 @@ ifeq ($(USE_STACK_CHECK),true)
endif
ifeq ($(USE_COMPILER_DEBUG_OPTS),true)
CFLAGS += -g3
CPPFLAGS += -g3
LDFLAGS += -g3
CFLAGS += -g3 -ggdb
CPPFLAGS += -g3 -ggdb
LDFLAGS += -g3 -ggdb
endif
ifeq ($(USE_COMPILER_OPTIMIZATION_OPTS),true)
CFLAGS += -funroll-loops -O2
CPPFLAGS += -funroll-loops -O2
else
NO_OPT_FLAGS = \
-fno-inline-functions-called-once \
-fno-tree-loop-optimize
_NO_OPT_FLAGS = \
-O0 \
-fno-implicit-inline-templates \
@ -735,6 +744,75 @@ endif
# -- use of supplementary libraries
ifeq ($(USE_JUX2),true)
JUX2_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/jux2 /opt/$(FLAVOUR_PATH_PREFIX)jux2))
JUX2_VERSION = $(call version,$(JUX2_DIR))
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)jux2-run = $(JUX2_VERSION)
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)jux2-devel = $(JUX2_VERSION)
USE_YTOOLS = true
USE_FEEDFS = true
USE_FEEDFS_OBJECTS = true
USE_FEEDFS_UTILS = true
USE_BTOOLS = true
USE_JUX = true
INCLUDE += -I$(JUX2_DIR)/include
LIBFLAGS += -L$(JUX2_DIR)/lib -ljux2
EXE_SEARCH_PATH += $(JUX2_DIR)/bin
endif
ifeq ($(USE_JUX),true)
JUX_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/jux /opt/$(FLAVOUR_PATH_PREFIX)jux))
JUX_VERSION = $(call version,$(JUX_DIR))
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)jux-run = $(JUX_VERSION)
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)jux-devel = $(JUX_VERSION)
USE_YTOOLS = true
USE_FEEDFS = true
USE_FEEDFS_OBJECTS = true
USE_FEEDFS_UTILS = true
USE_FEEDFS_NET = true
USE_FEEDFS_LOCAL = true
USE_BTOOLS = true
USE_JUX_SHARED = true
INCLUDE += -I$(JUX_DIR)/include
LIBFLAGS += -L$(JUX_DIR)/lib -ljux
EXE_SEARCH_PATH += $(JUX_DIR)/bin
endif
ifeq ($(USE_JUX_CLIENT_JAVA),true)
JUX_CLIENT_JAVA_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/jux-client-java /opt/$(FLAVOUR_PATH_PREFIX)jux-client-java))
JUX_CLIENT_JAVA_VERSION = $(call version,$(JUX_CLIENT_JAVA_DIR))
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)jux-client-java-run = $(JUX_CLIENT_JAVA_VERSION)
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)jux-client-java-devel = $(JUX_CLIENT_JAVA_VERSION)
USE_JUX_CLIENT = true
LIBFLAGS += -L$(JUX_CLIENT_JAVA_DIR)/lib -ljux-client-java
endif
ifeq ($(USE_JUX_CLIENT),true)
JUX_CLIENT_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/jux-client /opt/$(FLAVOUR_PATH_PREFIX)jux-client))
JUX_CLIENT_VERSION = $(call version,$(JUX_CLIENT_DIR))
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)jux-client-run = $(JUX_CLIENT_VERSION)
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)jux-client-devel = $(JUX_CLIENT_VERSION)
USE_FEEDFS_NET = true
USE_JUX_SHARED = true
INCLUDE += -I$(JUX_CLIENT_DIR)/include
LIBFLAGS += -L$(JUX_CLIENT_DIR)/lib -ljux-client
EXE_SEARCH_PATH += $(JUX_CLIENT_DIR)/bin
endif
ifeq ($(USE_JUX_SHARED),true)
JUX_SHARED_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/jux-shared /opt/$(FLAVOUR_PATH_PREFIX)jux-shared))
JUX_SHARED_VERSION = $(call version,$(JUX_SHARED_DIR))
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)jux-shared-run = $(JUX_SHARED_VERSION)
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)jux-shared-devel = $(JUX_SHARED_VERSION)
USE_YTOOLS = true
USE_FEEDFS = true
USE_FEEDFS_OBJECTS = true
USE_FEEDFS_UTILS = true
USE_BTOOLS = true
INCLUDE += -I$(JUX_SHARED_DIR)/include
LIBFLAGS += -L$(JUX_SHARED_DIR)/lib -ljux-shared
endif
ifeq ($(USE_CCASFS),true)
CCASFS_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/dspc/src/ccasfs /opt/$(FLAVOUR_PATH_PREFIX)dspider/ccasfs))
CCASFS_VERSION = $(call version,$(CCASFS_DIR))
@ -818,8 +896,23 @@ LIBFLAGS += -L$(FEEDFS_QT_DIR)/lib -lfeedfs-qt
EXE_SEARCH_PATH += $(FEEDFS_QT_DIR)/bin
endif
ifeq ($(USE_FEEDFS_WT),true)
FEEDFS_WT_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/feedfs-wt /opt/$(FLAVOUR_PATH_PREFIX)feedfs-wt))
FEEDFS_WT_VERSION = $(call version,$(FEEDFS_WT_DIR))
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)feedfs-wt-run = $(FEEDFS_WT_VERSION)
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)feedfs-wt-devel = $(FEEDFS_WT_VERSION)
USE_FEEDFS_UTILS = true
USE_FEEDFS = true
USE_YTOOLS = true
USE_FEEDFS_GUI = true
USE_WT_JANNET = true
INCLUDE += -I$(FEEDFS_WT_DIR)/include
LIBFLAGS += -L$(FEEDFS_WT_DIR)/lib -lfeedfs-wt
EXE_SEARCH_PATH += $(FEEDFS_WT_DIR)/bin
endif
ifeq ($(USE_FEEDFS_GUI),true)
FEEDFS_GUI_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/feedfs-gui /opt/$(FLAVOUR_PATH_PREFIX)feedfs-gui))
FEEDFS_GUI_DIR ?= $(firstword $(wildcard $(CVS_PROJ_DIR)/feedfs-gui /opt/$(FLAVOUR_PATH_PREFIX)feedfs-gui))
FEEDFS_GUI_VERSION = $(call version,$(FEEDFS_GUI_DIR))
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)feedfs-gui-run = $(FEEDFS_GUI_VERSION)
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)feedfs-gui-devel = $(FEEDFS_GUI_VERSION)
@ -877,6 +970,7 @@ RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)feedfs-net-devel = $(FEEDFS_NET_VE
USE_FEEDFS_OBJECTS = true
USE_FEEDFS_UTILS = true
USE_XCHANGE = true
USE_FEEDFS_FMEMFS = true
USE_YTOOLS = true
INCLUDE += -I$(FEEDFS_NET_DIR)/include
LIBFLAGS += -L$(FEEDFS_NET_DIR)/lib -lfeedfs-net
@ -933,7 +1027,7 @@ EXE_SEARCH_PATH += $(FEEDFS_SYSLOG_DIR)/bin
endif
ifeq ($(USE_FEEDFS_OBJECTS),true)
FEEDFS_OBJECTS_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/feedfs-objects /opt/$(FLAVOUR_PATH_PREFIX)feedfs-objects))
FEEDFS_OBJECTS_DIR ?= $(firstword $(wildcard $(CVS_PROJ_DIR)/feedfs-objects /opt/$(FLAVOUR_PATH_PREFIX)feedfs-objects))
FEEDFS_OBJECTS_VERSION = $(call version,$(FEEDFS_OBJECTS_DIR))
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)feedfs-objects-run = $(FEEDFS_OBJECTS_VERSION)
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)feedfs-objects-devel = $(FEEDFS_OBJECTS_VERSION)
@ -1079,7 +1173,6 @@ RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)wt-jannet-run = $(WT_JANNET_VERSIO
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)wt-jannet-devel = $(WT_JANNET_VERSION)
USE_FEEDFS = true
INCLUDE += -I$(WT_JANNET_DIR)/include
LIBFLAGS += -L$(WT_JANNET_DIR)/lib -lwt-jannet
LD_LIB_PATH += $(WT_JANNET_DIR)/lib
EXE_SEARCH_PATH += $(WT_JANNET_DIR)/bin
endif
@ -1159,6 +1252,10 @@ ifeq ($(USE_GLIB),true)
endif
endif
ifeq ($(USE_WT),true)
LIBFLAGS += -L$(WT_JANNET_DIR)/lib -lwt-jannet -lwt -lwtext -lwthttp -lwtfcgi
endif
CFLAGS += $(LOCAL_CFLAGS) $(PROJECT_CFLAGS) $(INCLUDE)
CPPFLAGS += $(LOCAL_CPPFLAGS) $(PROJECT_CPPFLAGS) $(INCLUDE)
LDFLAGS += $(LOCAL_LDFLAGS) $(PROJECTLIB_LDFLAGS) $(PROJECT_LDFLAGS) $(LPPFLAGS) $(LIBFLAGS)

View file

@ -22,7 +22,7 @@ project-header: $(PROJ_H)
# rules
clean.include:
rm -rf *.h *~ .*.swp *.done $(PROJ_H)
rm -rf *.h *~ .*.swp *.done $(PROJ_H) $(HDRDIR_SCOPE_SUFFIX)
$(PROJ_H): $(filter-out $(PROJ_H) $(PROJECT)/$(PROJ_H),$(wildcard *.h $(PROJECT)/*.h))
echo "#ifndef _$(PROJECT_CAPNAME)_H" > $@.tmp

View file

@ -6,7 +6,7 @@
include $(MODDIR)/make/defs.mk
include $(MODDIR)/make/rules.mk
all: $(LD_CONF)
all:
ifeq ($(USE_PROJECT_LIB),false)
ifeq ($(TARGET),mingw)
SHOBJS += $(wildcard *.dll)
@ -14,9 +14,9 @@ ifeq ($(USE_PROJECT_LIB),false)
SHOBJS += $(wildcard *.so)
endif
all:
install: $(INSTALLED_SHOBJS) install_LD_CONF
install:
else
all: $(LIB_SO) $(LINKS_SO) $(MSVCPP_IMPLIB) $(STRIP_DONE)
all: $(LD_CONF) $(LIB_SO) $(LINKS_SO) $(MSVCPP_IMPLIB) $(STRIP_DONE)
install: install_LIB install_LD_CONF
endif
clean: libclean local_libclean clean.ld-conf

View file

@ -1,6 +1,7 @@
# === change this >
TOOLS_DIR ?= $(TOPDIR)/tools
CPP_PREFIX ?= YLo
CPP_SUFFIX ?=
SO_PREFIX ?= lo_
LOADABLE_OBJ_HOOK ?= LOADABLE_OBJECT_HOOK
# === change this <
@ -8,7 +9,7 @@ LOADABLE_OBJ_HOOK ?= LOADABLE_OBJECT_HOOK
include $(MODDIR)/make/defs.mk
.PRECIOUS: %.cpp
LOADABLE_OBJS_BASE = $(patsubst $(CPP_PREFIX)%,%,$(basename $(notdir $(wildcard $(TOOLS_DIR)/$(CPP_PREFIX)*.h))))
LOADABLE_OBJS_BASE = $(patsubst %$(CPP_SUFFIX),%,$(patsubst $(CPP_PREFIX)%,%,$(basename $(notdir $(wildcard $(TOOLS_DIR)/$(CPP_PREFIX)*$(CPP_SUFFIX).h)))))
LOADABLE_OBJS = $(filter-out $(LOADABLE_OBJ_IGNORE),$(LOADABLE_OBJS_BASE))
LOADABLE_OBJS_CPP = $(patsubst %,%.cpp,$(LOADABLE_OBJS))
LOADABLE_OBJS_O = $(patsubst %,%.o,$(LOADABLE_OBJS))
@ -34,16 +35,19 @@ all: $(LOADABLE_OBJ_LIBS) $(BUILD_LOADABLE_OBJ_LIBS)
install: $(INSTALLED_LOADABLE_OBJ_LIBS)
clean: clean.lo
clean.lo: profclean
rm -f $(filter-out $(CPP_PREFIX)%.cpp,$(wildcard *.o *.cpp *.so *.done *.dll $(OTHER_LIB)))
clean.generated:
rm -f $(patsubst $(CPP_PREFIX)%$(CPP_SUFFIX),%,$(notdir $(wildcard $(TOOLS_DIR)/$(CPP_PREFIX)*$(CPP_SUFFIX).cpp)))
clean.lo: profclean clean.generated
rm -f $(wildcard *.o *.so *.done *.dll $(OTHER_LIB))
$(SO_PREFIX)%.so $(SO_PREFIX)%.dll: %.o $(OTHER_LIB)
$(CPP) $< -L. $(OTHER_LIB_LDFLAGS) -shared $(LDFLAGS) -o $@
%.cpp: $(TOOLS_DIR)/$(CPP_PREFIX)%.h
%.cpp: $(TOOLS_DIR)/$(CPP_PREFIX)%$(CPP_SUFFIX).h
echo "#include \"$<\"" > $@.tmp
if [ "$(LO_NAMESPACE)" ]; then echo "using namespace $(LO_NAMESPACE);" >> $@.tmp; fi
echo "$(LOADABLE_OBJ_HOOK)($(CPP_PREFIX)$*);" >> $@.tmp
echo "$(LOADABLE_OBJ_HOOK)($(CPP_PREFIX)$*$(CPP_SUFFIX));" >> $@.tmp
mv $@.tmp $@
$(OTHER_LIB)(%.o): %.o

View file

@ -56,7 +56,7 @@ rccclean:
rm -rf $(RCC_CPP)
textclean: doneclean
rm -rf *~ .*~ .*.swp *.rep \#*\# .kdbgrc.* .\#*
rm -rf *~ .*~ .*.swp *.rep \#*\# .kdbgrc.* .\#* .exrc
allclean:
rm -rf $(ALL) $(LOCAL_TARGETS)
@ -166,9 +166,9 @@ ifneq ($(wildcard *.so),)
@echo "======= libraries:"
@for o in *.so; do echo "------- $$o"; ldd $$o; done
endif
ifneq ($(EXE),)
ifneq ($(EXE_PATH),)
@echo "======= executables:"
@for o in $(EXE); do echo "------- $$o"; ldd $$o; done
@for o in $(EXE_PATH); do echo "------- $$o"; ldd $$o; done
endif
endif

View file

@ -19,42 +19,64 @@ include $(MODDIR)/make/rules.mk
include $(MODDIR)/make/ldlibpath.mk
include $(MODDIR)/make/debugger.mk
EXE_PATH ?= ./$(EXE)
all:
install:
valgrind:
rm -f $(CORE)
valgrind $(VALGRIND_OPTS) ./$(EXE) $(EXE_ARGS)
valgrind $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS)
callgrind:
rm -f $(CORE)
valgrind --tool=callgrind $(VALGRIND_OPTS) ./$(EXE) $(EXE_ARGS)
valgrind --tool=callgrind $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS)
ifeq ($(TARGET),mingw)
run test:
@echo "wine $(EXE) $(EXE_ARGS)"
run test: all
@echo "wine $(EXE_PATH) $(EXE_ARGS)"
@echo -e "set PATH=%PATH;$(DLL_PATH)\n" \
"$(EXE) $(EXE_ARGS)" | wine cmd
"$(EXE_PATH) $(EXE_ARGS)" | wine cmd
start: all
@echo "wine $(EXE_PATH) $(EXE_ARGS)"
@echo -e "set PATH=%PATH;$(DLL_PATH)\n" \
"$(EXE_PATH) $(EXE_ARGS)" | wine cmd &
clean: winrunclean
winrunclean:
rm -f start.bat
else
run test:
run test: all
rm -f $(CORE)
./$(EXE) $(EXE_ARGS)
$(EXE_PATH) $(EXE_ARGS)
start: all
rm -f $(CORE)
$(EXE_PATH) $(EXE_ARGS) &
# unfortunately iwatch only supports one directory :-(
autorun:
make run &
iwatch -e close_write -c "$(HOME)/bin/run-once.sh make restart" \
$(BUILD_LIBDIR)
wait-stop:
while /sbin/checkproc $(notdir $(EXE_PATH)); do sleep 1; done
restart: stop wait-stop all start
endif
stop:
killall ./$(EXE)
if /sbin/checkproc $(notdir $(EXE_PATH)); then killall $(notdir $(EXE_PATH)); fi
kill:
killall -9 ./$(EXE)
killall -9 $(notdir $(EXE_PATH))
abort:
killall -6 ./$(EXE)
killall -6 $(notdir $(EXE_PATH))
strace: $(EXE) $(EXE_BIN)
strace -f ./$(EXE) $(EXE_ARGS)
strace: $(EXE_PATH) $(EXE_BIN)
strace -f $(EXE_PATH) $(EXE_ARGS)
kcg:
kcachegrind callgrind.*
@ -63,6 +85,6 @@ clean: runclean localclean
start.bat:
echo "set PATH=%PATH;$(DLL_PATH)" > $@.tmp
echo "$(EXE) $(EXE_ARGS)" >> $@.tmp
echo "$(EXE_PATH) $(EXE_ARGS)" >> $@.tmp
mv $@.tmp $@

View file

@ -4,7 +4,7 @@ clean: topdir.clean
config:
SUBDIRS ?= $(wildcard inst/pre make scripts tools src include lib bin \
util plugins conf config cfg doc test inst/post)
util plugins conf config cfg images doc test inst/post)
ifneq ($(wildcard $(TOPDIR)/make/defs.mk),)
include $(TOPDIR)/make/defs.mk
@ -50,15 +50,35 @@ do-install-links:
find lib -name '*.so' -o -name '*.so.*' -o -name '*.a' -o -name '*.dll' | \
sed 's%^\./%%' | \
while read f; do \
cd $(INSTALL_LIBDIR); \
echo " sudo ln -sf $$cwd/$$f" ; \
sudo ln -sf $$cwd/$$f; \
cd $(INSTALL_LIBDIR) && { \
echo " sudo ln -sf $$cwd/$$f" ; \
sudo ln -sf $$cwd/$$f; \
}; \
done; \
echo "o in $(INSTALL_EXEDIR):" ;\
find bin -type f -a -perm -u+x | \
sed 's%^\./%%' | \
while read f; do \
cd $(INSTALL_EXEDIR); \
echo " sudo ln -sf $$cwd/$$f" ; \
sudo ln -sf $$cwd/$$f; \
done
cd $(INSTALL_EXEDIR) && { \
echo " sudo ln -sf $$cwd/$$f" ; \
sudo ln -sf $$cwd/$$f; \
}; \
done ;\
echo "o in $(INSTALL_HDRDIR):" ;\
find include -name '*.h' | \
sed 's%^\./%%' | \
while read f; do \
cd $(INSTALL_HDRDIR) && { \
echo " sudo ln -sf $$cwd/$$f" ; \
sudo ln -sf $$cwd/$$f; \
}; \
done; \
echo "o in $(INSTALL_MAKEDIR):" ;\
find make -name '*.mk' | \
sed 's%^\./%%' | \
while read f; do \
cd $(INSTALL_MAKEDIR) && { \
echo " sudo ln -sf $$cwd/$$f" ; \
sudo ln -sf $$cwd/$$f; \
}; \
done; \

View file

@ -84,6 +84,11 @@ _ytools_source_section()
eval `_ytools_cat_section $* | _ytools_format_config`
}
_uniq()
{
sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P'
}
# -- exported utilities
ytools_log_err()
{
@ -306,12 +311,12 @@ ytools_config_sections()
sed "
/^[ ]*\[$o_section\.\(.*\)\]/ !d
s/^[ ]*\[$o_section\.\(.*\)\].*/\1/
" $o_file 2>/dev/null | sort -u
" $o_file 2>/dev/null | _uniq
else
sed "
/^[ ]*\[\(.*\)\]/ !d
s/^[ ]*\[\(.*\)\].*/\1/
" $o_file 2>/dev/null | sort -u
" $o_file 2>/dev/null | _uniq
fi
else
@ -320,12 +325,12 @@ ytools_config_sections()
sed "
/^[ ]*\[$o_section\.\([^.]*\)\]/ !d
s/^[ ]*\[$o_section\.\([^.]*\)\].*/\1/
" $o_file 2>/dev/null | sort -u
" $o_file 2>/dev/null | _uniq
else
sed "
/^[ ]*\[\([^.]*\)\]/ !d
s/^[ ]*\[\([^.]*\)\].*/\1/
" $o_file 2>/dev/null | sort -u
" $o_file 2>/dev/null | _uniq
fi
fi