aboutsummaryrefslogtreecommitdiff
path: root/project/Makefile
diff options
context:
space:
mode:
authorroot <root@dc13.lemmi>2020-07-21 10:00:46 +0200
committerroot <root@dc13.lemmi>2020-07-21 10:00:46 +0200
commit1192c4575ea7afdf38e3fa0df4587a08620af11e (patch)
tree6910a62487c282d0840d2e668aa7eb40b7c8a3fd /project/Makefile
parent76de8a89f7c1d1b4522eb66e8f89d248e8c1781f (diff)
SZS v2.18a
Diffstat (limited to '')
-rw-r--r--project/Makefile1094
-rw-r--r--project/Makefile.user1
2 files changed, 1095 insertions, 0 deletions
diff --git a/project/Makefile b/project/Makefile
new file mode 100644
index 0000000..d36fb5e
--- /dev/null
+++ b/project/Makefile
@@ -0,0 +1,1094 @@
+
+#####################################################################
+## _______ _______ _______ ##
+## | ___ |____ | ___ | ##
+## | | |_| / /| | |_| ##
+## | |_____ / / | |_____ ##
+## |_____ | / / |_____ | ##
+## _ | | / / _ | | ##
+## | |___| |/ /____| |___| | ##
+## |_______|_______|_______| ##
+## ##
+## Wiimms SZS Tools ##
+## https://szs.wiimm.de/ ##
+## ##
+#####################################################################
+## ##
+## This file is part of the SZS project. ##
+## Visit https://szs.wiimm.de/ for project details and sources. ##
+## ##
+## Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> ##
+## ##
+#####################################################################
+
+#----------------------------------------------------------------
+# make manual: http://www.gnu.org/software/make/manual/make.html
+#----------------------------------------------------------------
+
+#-------------------------------------------------------------------------------
+# global settings
+
+MYMAKE := $(lastword $(MAKEFILE_LIST))
+
+#SHELL = /bin/bash
+SHELL = /usr/bin/env bash
+
+AUTHOR = Dirk Clemens
+TOOLSET_SHORT = SZS
+TOOLSET_LONG = Wiimms SZS Toolset
+
+WSZST_SHORT = wszst
+WSZST_LONG = Wiimms SZS Tool
+WBMGT_SHORT = wbmgt
+WBMGT_LONG = Wiimms BMG Tool
+WCTCT_SHORT = wctct
+WCTCT_LONG = Wiimms CT-CODE Tool
+WIMGT_SHORT = wimgt
+WIMGT_LONG = Wiimms Image Tool
+WKCLT_SHORT = wkclt
+WKCLT_LONG = Wiimms KCL Tool
+WKMPT_SHORT = wkmpt
+WKMPT_LONG = Wiimms KMP Tool
+WLECT_SHORT = wlect
+WLECT_LONG = Wiimms LE-CODE Tool
+WMDLT_SHORT = wmdlt
+WMDLT_LONG = Wiimms MDL Tool
+WPATT_SHORT = wpatt
+WPATT_LONG = Wiimms PAT Tool
+WSTRT_SHORT = wstrt
+WSTRT_LONG = Wiimms StaticR Tool
+
+VERSION_NUM = 2.18a
+BETA_VERSION = 0
+ # 0:off -1:"beta" >0:"beta#"
+
+URI_HOME = https://szs.wiimm.de/
+URI_DOWNLOAD = https://szs.wiimm.de/download
+URI_FILE = https://szs.wiimm.de/file
+URI_SOURCE = https://download.wiimm.de/source/wiimms-szs-tools/
+
+ifeq ($(BETA_VERSION),0)
+ URI_REPOS = http://opensvn.wiimm.de/wii/trunk/wiimms-szs-tools/
+ URI_VIEWVC = https://szs.wiimm.de/r/viewvc
+else
+ URI_REPOS = http://opensvn.wiimm.de/wii/branches/public/wiimms-szs-tools/
+ URI_VIEWVC = https://szs.wiimm.de/r/viewvc-beta
+endif
+
+URI_DOWNLOAD_I386 = $(URI_DOWNLOAD)/$(DISTRIB_I386)
+URI_DOWNLOAD_X86_64 = $(URI_DOWNLOAD)/$(DISTRIB_X86_64)
+URI_DOWNLOAD_MAC = $(URI_DOWNLOAD)/$(DISTRIB_MAC)
+URI_DOWNLOAD_CYGWIN = $(URI_DOWNLOAD)/$(DISTRIB_CYGWIN)
+
+DOWNLOAD_DIR = /n/www/szs.wiimm.de/download
+EXPORT_DIR = /cygdrive/n/wit/wiimms-szs-tools/bin
+
+# format for logging messages, $1=job, $2=object, $3=more info
+LOGFORMAT := \33[36;1m*** %7s %-17s %s\33[0m\n
+LOGFORMAT_CC := \33[33;1m*** %7s %-17s %s\33[0m\n
+LOGFORMAT_TOOL := \33[35;1m*** %7s %-17s %s\33[0m\n
+LOGFORMAT_INST := \33[32;1m*** %7s %-17s %s\33[0m\n
+
+#-------------------------------------------------------------------------------
+# version+beta settings
+
+ifeq ($(BETA_VERSION),0)
+ BETA_SUFFIX :=
+else ifeq ($(BETA_VERSION),-1)
+ BETA_SUFFIX := .beta
+else
+ BETA_SUFFIX := .beta$(BETA_VERSION)
+endif
+
+VERSION := $(VERSION_NUM)$(BETA_SUFFIX)
+VERSION_INT := $(shell sed 's/\.//g; s/[^0-9]/ /g; s/ .*//' <<< "$(VERSION_NUM)" )
+
+DUMMY := $(shell $(SHELL) ./setup.sh $(VERSION) $(VERSION_NUM) $(VERSION_INT) )
+include Makefile.setup
+
+#------------------------------------------------------------------------------
+# include source library definitions
+
+DCLIB_MYSQL := 0
+include ./dclib/Makefile.inc
+
+#-------------------------------------------------------------------------------
+# compiler settings
+
+PRE ?=
+CC = $(PRE)gcc
+CPP = $(PRE)g++
+STRIP = $(PRE)strip
+
+#-------------------------------------------------------------------------------
+# files
+
+DIR_LIST =
+
+RM_FILES = *.{a,o,d,tmp,bak,exe} edit-list/*.log
+RM_FILES += */*.{tmp,bak} */*/*.{tmp,bak} */*/*/*.{tmp,bak}
+RM_FILES2 = templates.sed
+
+MODE_FILE = ./_mode.flag
+MODE = $(shell test -s $(MODE_FILE) && cat $(MODE_FILE))
+RM_FILES += $(MODE_FILE)
+
+UI = ./src/ui
+
+#-------------------------------------------------------------------------------
+# base flags
+
+DEFINES1 += -DLARGE_FILES -D_FILE_OFFSET_BITS=64
+DEFINES1 += -DWSZST # compile szs tools (switch for shared sources)
+DEFINES1 += -DDEBUG_ASSERT # enable ASSERTions in release version too
+DEFINES1 += -DEXTENDED_ERRORS=1 # enable extended error messages (function,line,file)
+DEFINES1 += -DUIOPT_INDEX_SIZE=300 # define max number of options (default 0x100)
+
+CFLAGS += -fomit-frame-pointer -fno-strict-aliasing -funroll-loops
+CFLAGS += -Wall -Wno-parentheses -Wno-unused-function
+CFLAGS += -Wno-deprecated-declarations
+CFLAGS += -O3 -Isrc -I$(UI) -I.
+
+DEPFLAGS += -MMD
+
+#--- system depedent flags & libs
+
+ifeq ($(SYSTEM),mac)
+ CFLAGS += -I/usr/local/include
+endif
+
+ifeq ($(SYSTEM_LINUX),1)
+ CFLAGS += -ffunction-sections -fdata-sections
+ LDFLAGS += -Xlinker --gc-sections
+ #LDFLAGS += -Xlinker --print-gc-sections
+ LIBS += -ltinfo
+ LDFLAGS += -static-libgcc
+endif
+
+ifeq ($(SYSTEM),cygwin)
+ LDFLAGS += -static-libgcc
+endif
+
+#ifeq ($(HAVE_PCRE),1)
+#ifeq ($(STATIC),1)
+# LIBS += $(PCRE_A)
+#else
+# LIBS += -lpcre
+#endif
+# DEFINES1 += -DHAVE_PCRE=1
+#endif
+
+#-------------------------------------------------------------------------------
+# tools
+
+MAIN_TOOLS := wszst wbmgt wctct wimgt wkclt wkmpt wlect wmdlt wpatt wstrt
+TEST_TOOLS := wtest
+EXTRA_TOOLS :=
+HELPER_TOOLS := gen-ui
+
+WRAPPER_TOOLS := $(filter-out wszst, $(MAIN_TOOLS))
+
+ALL_TOOLS := $(sort $(MAIN_TOOLS) $(TEST_TOOLS))
+ALL_TOOLS_X := $(sort $(MAIN_TOOLS) $(TEST_TOOLS) $(EXTRA_TOOLS))
+
+RM_FILES += $(ALL_TOOLS_X) $(HELPER_TOOLS) gen-ui
+
+#-------------------------------------------------------------------------------
+# tool dependent options and objects
+
+ifeq ($(STATIC),1)
+ OPT_STATIC := -static -DDCLIB_STATIC=1
+else
+ OPT_STATIC :=
+endif
+
+#---------------
+
+TOPT_wszst := $(OPT_STATIC)
+TOPT_wbmgt := $(OPT_STATIC)
+TOPT_wctct := $(OPT_STATIC)
+TOPT_wimgt := $(OPT_STATIC)
+TOPT_wkclt := $(OPT_STATIC)
+TOPT_wkmpt := $(OPT_STATIC)
+TOPT_wlect := $(OPT_STATIC)
+TOPT_wmdlt := $(OPT_STATIC)
+TOPT_wpatt := $(OPT_STATIC)
+TOPT_wstrt := $(OPT_STATIC)
+
+#---------------
+
+WRAPPER_OBJ = $(patsubst %,wrapper-%.o,$(WRAPPER_TOOLS))
+
+XOBJ_IMAGE = lib-image1.o lib-image2.o lib-image3.o
+XOBJ_PARSER = lib-parser.o lib-parser-func.o
+XOBJ_OBJECT = lib-object.o db-object.o db-file.o lib-bmg.o
+XOBJ_KCL = lib-kcl.o db-kcl.o
+XOBJ_KMP = lib-kmp.o lib-kmp-text.o lib-kmp-pflags.o lib-kmp-diff.o lib-kmp-draw.o
+XOBJ_COMMON = lib-common.o lib-geohit.o lib-itemslot.o lib-minigame.o lib-objflow.o
+
+TOBJ_gen-ui = $(XOBJ_OBJECT)
+
+TOBJ_wszst = analyze.o lib-szs-create.o lib-xbmg.o \
+ lib-mdl.o lib-pat.o lib-transform.o \
+ lib-ctcode.o lib-lecode.o \
+ lib-staticr.o db-dol.o db-ctcode.o getopt.o \
+ $(XOBJ_KMP) $(XOBJ_COMMON) $(XOBJ_KCL) lib-kcl-image.o lib-rkg.o \
+ $(XOBJ_OBJECT) $(XOBJ_PARSER) $(XOBJ_IMAGE) \
+ $(WRAPPER_OBJ)
+TOBJ_wbmgt = lib-xbmg.o $(XOBJ_OBJECT)
+TOBJ_wctct = lib-ctcode.o lib-lecode.o lib-xbmg.o db-ctcode.o \
+ $(XOBJ_PARSER) $(XOBJ_IMAGE) $(XOBJ_OBJECT)
+TOBJ_wimgt = $(XOBJ_IMAGE) $(XOBJ_OBJECT)
+TOBJ_wkclt = lib-transform.o $(XOBJ_KCL) $(XOBJ_PARSER) $(XOBJ_OBJECT)
+TOBJ_wkmpt = $(XOBJ_KMP) lib-transform.o \
+ $(XOBJ_KCL) lib-kcl-image.o \
+ $(XOBJ_IMAGE) $(XOBJ_PARSER) $(XOBJ_OBJECT)
+TOBJ_wlect = lib-lecode.o lib-ctcode.o lib-xbmg.o db-ctcode.o \
+ $(XOBJ_PARSER) $(XOBJ_IMAGE) $(XOBJ_OBJECT)
+TOBJ_wmdlt = lib-mdl.o lib-transform.o $(XOBJ_PARSER) $(XOBJ_OBJECT)
+TOBJ_wpatt = lib-pat.o $(XOBJ_PARSER) $(XOBJ_OBJECT)
+TOBJ_wstrt = lib-staticr.o db-dol.o db-ctcode.o $(XOBJ_OBJECT)
+TOBJ_wtest = $(XOBJ_KMP) $(XOBJ_KCL) $(XOBJ_OBJECT) $(XOBJ_PARSER) $(XOBJ_IMAGE) \
+ lib-mdl.o lib-transform.o
+
+#-------------------------------------------------------------------------------
+# sub libs
+
+# libbz2
+LIBBZ2_SRC = $(shell echo src/libbz2/*.c)
+LIBBZ2_OBJ = $(patsubst %.c,%.o,$(LIBBZ2_SRC))
+
+ifneq ($(SYSTEM),mac)
+ BZIP2_FLAGS = -Wno-maybe-uninitialized
+endif
+
+# lib summary
+LIB_LIST += libbz2
+LIB_OBJECTS += $(LIBBZ2_OBJ)
+RM_FILES += $(foreach l,$(LIB_LIST),src/$(l)/*.{d,o})
+
+#-------------------------------------------------------------------------------
+# object files
+
+TOBJ_ALL = $(sort $(TOBJ_wszst) $(TOBJ_wbmgt) $(TOBJ_wctct) \
+ $(TOBJ_wimgt) $(TOBJ_wkclt) $(TOBJ_wkmpt) \
+ $(TOBJ_wlect) $(TOBJ_wmdlt) $(TOBJ_wpatt) \
+ $(TOBJ_wstrt) $(TOBJ_wtest) $(TOBJ_szs) )
+TOBJ_NO_WRAPPER = $(filter-out $(WRAPPER_OBJ), $(TOBJ_ALL) )
+
+# objects of tools
+MAIN_TOOLS_OBJ = $(patsubst %,%.o,$(MAIN_TOOLS) $(EXTRA_TOOLS))
+OTHER_TOOLS_OBJ = $(patsubst %,%.o,$(TEST_TOOLS) $(HELPER_TOOLS))
+
+# dclib
+DCLIB_DIR := ./dclib
+DIR_LIST += $(DCLIB_DIR)
+VPATH += $(DCLIB_DIR)
+CFLAGS += -I$(DCLIB_DIR)
+
+# other objects
+SZS_O := lib-std.o lib-file.o lib-numeric.o \
+ lib-szs.o lib-checksum.o \
+ lib-rarc.o lib-pack.o lib-rkc.o lib-brres.o lib-breff.o \
+ file-type.o db-mkw.o lib-mkw.o lib-dol.o \
+ sha1dgst.o sha1_one.o lib-bzip2.o \
+ $(DCLIB_O)
+
+# object groups
+UI_OBJECTS = $(sort $(MAIN_TOOLS_OBJ))
+C_OBJECTS = $(sort $(OTHER_TOOLS_OBJ) $(SZS_O) $(TOBJ_NO_WRAPPER))
+ASM_OBJECTS = ssl-asm.o
+
+# all objects + sources
+ALL_OBJECTS = $(sort $(SZS_O) $(ASM_OBJECTS) $(LIB_OBJECTS))
+ALL_SOURCES = $(patsubst %.o,%.c,$(UI_OBJECTS) $(C_OBJECTS) \
+ $(WRAPPER_OBJ) $(ASM_OBJECTS))
+
+#-------------------------------------------------------------------------------
+# source files
+
+UI_FILES = ui.def
+UI_FILES += $(patsubst %,ui-%.c,$(MAIN_TOOLS) $(EXTRA_TOOLS))
+UI_FILES += $(patsubst %,ui-%.h,$(MAIN_TOOLS) $(EXTRA_TOOLS))
+
+UI_TABS = $(patsubst %,tab-%.inc,$(MAIN_TOOLS) $(EXTRA_TOOLS))
+
+SETUP_DIR = ./setup
+SETUP_INFO = INSTALL.txt
+SETUP_FILES = version.h install.sh cygwin-copy.sh szs.def \
+ $(SETUP_INFO) $(CYGWIN_SCRIPTS)
+DIR_LIST += $(SETUP_DIR)
+RM_FILES2 += $(SETUP_FILES)
+
+TEXT_DIR = ./text-files
+TEXT_FILES = $(shell cd $(TEXT_DIR) && echo *.inc)
+DIR_LIST += $(TEXT_DIR)
+RM_FILES2 += $(TEXT_FILES)
+
+#-------------------------------------------------------------------------------
+# lib export
+
+LIBEXPORT = ./_lib-export
+
+LIBEX_FILES = src/lib-*.[ch]
+LIBEX_FILES += src/system.h src/types.h src/debug.h
+
+#-------------------------------------------------------------------------------
+
+INSTALL_SCRIPTS = install.sh
+RM_FILES += $(INSTALL_SCRIPTS)
+TEMPLATES = ./templates
+MODULES = $(TEMPLATES)/module
+GEN_TEMPLATE = ./gen-template.sh
+GEN_TEXT_FILE = ./gen-text-file.sh
+DIR_LIST += $(TEMPLATES) $(MODULES)
+
+VPATH += src src/crypto $(UI)
+DIR_LIST += src src/crypto $(UI)
+
+
+#--- external flags & clean
+
+DEFINES = $(strip $(DEFINES1) $(MODE) $(XDEF))
+CFLAGS += $(XFLAGS)
+CFLAGS := $(strip $(CFLAGS))
+LDFLAGS := $(strip $(LDFLAGS))
+LIBS += $(LIBPNG) -lm -lncurses $(XLIBS)
+
+#-------------------------------------------------------------------------------
+
+DISTRIB_RM = ./szs-v$(VERSION)-r
+DISTRIB_BASE = szs-v$(VERSION)-r$(REVISION_NEXT)
+DISTRIB_PATH = ./$(DISTRIB_BASE)-$(SYSTEM)
+DISTRIB_I386 = $(DISTRIB_BASE)-i386.tar.gz
+DISTRIB_X86_64 = $(DISTRIB_BASE)-x86_64.tar.gz
+DISTRIB_MAC = $(DISTRIB_BASE)-mac.tar.gz
+DISTRIB_CYGWIN = $(DISTRIB_BASE)-cygwin.zip
+DISTRIB_FILES = gpl-2.0.txt $(INSTALL_SCRIPTS) $(SETUP_INFO)
+
+DOC_FILES = doc/*.txt
+IGNORE_DOC_FILES= HISTORY-v*.txt
+
+SUPPORT_DIR = ./support
+SUPPORT_FILES = $(SUPPORT_DIR)/*.txt $(SUPPORT_DIR)/*.xml
+DIR_LIST += $(SUPPORT_DIR)
+
+BIN_FILES = $(MAIN_TOOLS) $(EXTRA_TOOLS)
+SHARE_FILES =
+
+CYGWIN_DIR = /usr/bin
+CYGWIN_TOOLS = bash chmod cp env grep mkdir realpath regtool stat tr
+CYGWIN_SCRIPTS = windows-install.sh windows-uninstall.sh windows-uninstall.bat \
+ sendto-install.sh sendto-uninstall.sh
+CYGWIN_INSTALL = $(SETUP_DIR)/windows-install.exe \
+ $(SETUP_DIR)/sendto-install.bat \
+ $(SETUP_DIR)/sendto-uninstall.bat
+CYGWIN_UNINSTALL= $(SETUP_DIR)/windows-uninstall.bat
+
+WIN_INSTALL_PATH= Wiimm/SZS
+
+DIR_LIST_BIN = $(SCRIPTS) bin
+DIR_LIST += $(DIR_LIST_BIN)
+DIR_LIST += share makefiles-local edit-list
+
+#
+###############################################################################
+# default rule
+
+default_rule: all
+ @echo "HINT: try 'make help'"
+
+# include this behind the default rule
+-include $(ALL_SOURCES:.c=.d)
+-include $(TEXT_FILES:.inc=.inc.d)
+
+#
+###############################################################################
+# local definitions
+
+-include makefiles-local/Makefile.local.$(SYSTEM)
+-include Makefile.user
+
+ifeq ($(WIIMM).$(NOWIIMM).$(HAVE_WORK),1..1)
+ DIR_LIST += ./work
+endif
+
+ifeq ($(WIIMM).$(NOWIIMM).$(HAVE_WORK_SRC),1..1)
+ DEFINES1 += -DHAVE_WIIMM_EXT=1
+ CFLAGS += -I./work/src
+ VPATH += ./work/src
+ DIR_LIST += ./work/src
+ TOBJ_wszst += lib-vehicle.o db-vehicle.o wcommand.o
+ #LIBS += -lncurses
+endif
+
+#
+###############################################################################
+# general rules
+# -Xlinker -Map=$@.map
+
+$(ALL_TOOLS_X): %: %.o $(ALL_OBJECTS) $(TOBJ_ALL) Makefile | $(HELPER_TOOLS) $(UI_OBJECTS)
+ @printf "$(LOGFORMAT_TOOL)" tool "$@" "$(MODE) $(TOPT_$@)"
+ @$(CC) $(CFLAGS) $(DEFINES) $(LDFLAGS) $@.o \
+ $(ALL_OBJECTS) $(TOBJ_$@) $(LIBS) $(TOPT_$@) -o $@
+ @if test -f $@.exe; then $(STRIP) $@.exe; else $(STRIP) $@; fi
+
+ @mkdir -p bin/$(SYSTEM) bin/$(SYSTEM)/debug
+ @if test -s $(MODE_FILE) && grep -Fq -e -DDEBUG $(MODE_FILE); \
+ then cp -p $@ bin/$(SYSTEM)/debug/; \
+ else cp -p $@ bin/; cp -p $@ bin/$(SYSTEM)/; fi
+
+#--------------------------
+
+$(HELPER_TOOLS): %: %.o $(ALL_OBJECTS) $(TOBJ_NO_WRAPPER) $(UI_TABS) Makefile
+ @printf "$(LOGFORMAT_TOOL)" helper "$@ $(TOBJ_$@)" "$(MODE)"
+ @$(CC) $(CFLAGS) $(DEFINES) $(LDFLAGS) $@.o \
+ $(ALL_OBJECTS) $(TOBJ_$@) $(LIBS) -o $@
+
+#--------------------------
+
+$(UI_OBJECTS): %.o: %.c ui-%.c ui-%.h version.h Makefile
+ @printf "$(LOGFORMAT_CC)" +object "$@" "$(MODE)"
+ @$(CC) $(CFLAGS) $(DEPFLAGS) $(DEFINES) -c $< -o $@
+
+#--------------------------
+
+$(C_OBJECTS): %.o: %.c version.h Makefile | $(TEXT_FILES)
+ @printf "$(LOGFORMAT_CC)" object "$@" "$(MODE)"
+ @$(CC) $(CFLAGS) $(DEPFLAGS) $(DEFINES) -c $< -o $@
+
+#--------------------------
+
+$(WRAPPER_OBJ): %.o: %.c version.h Makefile | $(TEXT_FILES) gen-ui
+ @printf "$(LOGFORMAT_CC)" object "$@" "$(MODE)"
+ @$(CC) $(CFLAGS) $(DEPFLAGS) $(DEFINES) -c $< -o $@
+
+#--------------------------
+
+$(ASM_OBJECTS): %.o: %.S Makefile
+ @printf "$(LOGFORMAT_CC)" asm "$@" "$(MODE)"
+ @$(CC) $(CFLAGS) $(DEPFLAGS) $(DEFINES) -c $< -o $@
+
+#--------------------------
+
+$(SETUP_FILES): templates.sed $(SETUP_DIR)/$@
+ @printf "$(LOGFORMAT)" create "$@" ""
+ @chmod 775 $(GEN_TEMPLATE)
+ @$(GEN_TEMPLATE) $@
+
+.PHONY : setup-files
+setup-files: templates.sed version.h install.sh
+
+#--------------------------
+
+$(TEXT_FILES): $(GEN_TEXT_FILE)
+ @printf "$(LOGFORMAT)" text "$@" ""
+ @chmod 775 $(GEN_TEXT_FILE)
+ @$(GEN_TEXT_FILE) $(TEXT_DIR) $@
+
+#--------------------------
+
+$(UI_FILES): gen-ui.c ui.h $(UI_TABS) | gen-ui
+ @printf "$(LOGFORMAT)" run gen-ui ""
+ @./gen-ui
+
+.PHONY : run-ui
+run-ui : gen-ui.c ui.h $(UI_TABS) $(UI_FILES) | gen-ui
+# @printf "$(LOGFORMAT)" run gen-ui
+# @./gen-ui
+
+#
+###############################################################################
+# lib specific rules
+
+$(LIBBZ2_OBJ): %.o: %.c Makefile
+ @printf "$(LOGFORMAT_CC)" object "$(subst src/libbz2/,,$@)" "$(MODE) [libbz2]"
+ @$(CC) $(CFLAGS) $(DEPFLAGS) $(BZIP2_FLAGS) $(DEFINES) -c $< -o $@
+
+#
+###############################################################################
+# specific rules in alphabetic order
+
+.PHONY : all
+all: setup-files $(TEXT_FILES) $(HELPER_TOOLS) $(ALL_TOOLS) $(INSTALL_SCRIPTS) $(SETUP_INFO)
+
+.PHONY : all+
+all+: clean+ all distrib
+
+#
+#--------------------------
+
+.PHONY : ch+
+ch+: chmod chown chgrp
+
+#
+#--------------------------
+
+.PHONY : chmod
+chmod:
+ @printf "$(LOGFORMAT)" chmod 775/664 ""
+ @for d in . $(DIR_LIST); do test -d "$$d" && chmod ug+rw "$$d"/*; done || true
+ @for d in . $(DIR_LIST); do test -d "$$d" && chmod -f a+x "$$d"/*.sh; done || true
+ @for d in $(DIR_LIST); do test -d "$$d" && chmod 775 "$$d"; done || true
+ @for t in $(ALL_TOOLS_X); do test -f "$$t" && chmod 775 "$$t"; done || true
+ @chmod 664 src/*.[hc] src/*/*.[hc] dclib/*.[hc]
+
+#
+#--------------------------
+
+.PHONY : chown
+chown:
+ @printf "$(LOGFORMAT)" chown "-R $$( stat -c%u . 2>/dev/null || stat -f%u . ) ." ""
+ @chown "$$( stat -c%u . 2>/dev/null || stat -f%u . )" *
+ @for d in $(DIR_LIST); do test -d "$$d" && \
+ chown -R "$$( stat -c%u . 2>/dev/null || stat -f%u . )" "$$d"; done || true
+
+#
+#--------------------------
+
+.PHONY : chgrp
+chgrp:
+ @printf "$(LOGFORMAT)" chgrp "-R $$( stat -c%g . 2>/dev/null || stat -f%g . ) ." ""
+ @chgrp "$$( stat -c%u . 2>/dev/null || stat -f%u . )" *
+ @for d in $(DIR_LIST); do test -d "$$d" && \
+ chgrp -R "$$( stat -c%g . 2>/dev/null || stat -f%g . )" "$$d"; done || true
+
+#
+#--------------------------
+
+.PHONY : clean
+clean:
+ @printf "$(LOGFORMAT)" rm "output files + distrib" ""
+ -@rm -fr _start-pos.tmp
+ @find -type d -name test.tmp -exec rm -rf {} +
+ @rm -f $(RM_FILES)
+ @rm -fr $(DISTRIB_RM)* $(LIBEXPORT)
+ @cd dclib && rm -f $(DCLIB_PRIVATE)
+
+.phony : do_clean+
+do_clean+: clean
+ @printf "$(LOGFORMAT)" rm "test files + template output" ""
+ -@rm -f $(RM_FILES2)
+ -@rm -fr doc
+
+.PHONY : c+ clean+
+c+ clean+: do_clean+
+
+.PHONY : c++ clean++
+c++ clean++: do_clean+ st
+
+#
+#--------------------------
+
+.PHONY: dclib
+dclib:
+ @echo "DCLIB_MYSQL=$(DCLIB_MYSQL)"
+ @echo "DCLIB_FLAGS=$(DCLIB_FLAGS)"
+ @echo "DCLIB_O=$(DCLIB_O)"
+
+#
+#--------------------------
+
+.PHONY : debug
+debug:
+ @printf "$(LOGFORMAT)" enable debug "-> define -DDEBUG"
+ @rm -f *.o $(ALL_TOOLS_X)
+ @echo "-DDEBUG" >>$(MODE_FILE)
+ @sort $(MODE_FILE) | uniq > $(MODE_FILE).tmp
+# 2 steps to bypass a cygwin mv failure
+ @cp $(MODE_FILE).tmp $(MODE_FILE)
+ @rm -f $(MODE_FILE).tmp
+
+#
+#--------------------------
+
+.PHONY : distrib2
+distrib2:
+ifeq ($(SYSTEM_LINUX),1)
+
+ @printf "\n---------- DISTRIB LINUX/I386 ----------\n\n"
+ @for t in $(ALL_TOOLS_X); do rm -f bin/$$t; done
+ @$(MAKE) --no-print-directory clean+
+ @M32=1 $(MAKE) --no-print-directory distrib
+ @mv "$(DISTRIB_I386)" "save-$(DISTRIB_I386)"
+
+ @printf "\n---------- DISTRIB LINUX/X86_64 ----------\n\n"
+ @for t in $(ALL_TOOLS_X); do rm -f bin/$$t; done
+ @$(MAKE) --no-print-directory clean+
+ @$(MAKE) --no-print-directory distrib
+ @mv "save-$(DISTRIB_I386)" "$(DISTRIB_I386)"
+
+else
+ @$(MAKE) --no-print-directory clean+ distrib
+endif
+
+#-----
+
+.PHONY : distrib
+distrib:
+ifeq ($(SYSTEM),mac)
+ @NOWIIMM=1 $(MAKE) --no-print-directory mac-distrib
+else ifeq ($(SYSTEM),cygwin)
+ NOWIIMM=1 $(MAKE) --no-print-directory all doc cygwin-copy.sh \
+ $(CYGWIN_SCRIPTS) gen-distrib info
+else
+ NOWIIMM=1 STATIC=1 $(MAKE) --no-print-directory all doc gen-distrib info
+endif
+
+#-----
+
+.PHONY : gen-distrib
+gen-distrib:
+ @printf "$(LOGFORMAT)" create "$(DISTRIB_PATH)" ""
+
+ifeq ($(SYSTEM),cygwin)
+
+ @rm -rf $(DISTRIB_PATH)/* 2>/dev/null || true
+ @rm -rf $(DISTRIB_PATH) 2>/dev/null || true
+ @mkdir -p $(DISTRIB_PATH)/bin/windows-sendto
+ @mkdir -p $(DISTRIB_PATH)/scripts
+ @mkdir -p $(DISTRIB_PATH)/doc $(DISTRIB_PATH)/support
+ @./cygwin-copy.sh
+ @printf '@cmd\r\n' >$(DISTRIB_PATH)/bin/szs-console.bat
+ @cp -p gpl-2.0.txt $(DISTRIB_PATH)
+ @ln -f $(MAIN_TOOLS) $(CYGWIN_SCRIPTS) $(CYGWIN_INSTALL) $(DISTRIB_PATH)/bin
+ @ln -f $(SETUP_DIR)/windows-sendto/*.bat $(DISTRIB_PATH)/bin/windows-sendto
+ @ln -f $(CYGWIN_INSTALL) $(CYGWIN_UNINSTALL) $(SETUP_INFO) $(DISTRIB_PATH)
+ @cp -p $(DOC_FILES) $(DISTRIB_PATH)/doc
+ @cp -p $(SUPPORT_FILES) $(DISTRIB_PATH)/support
+ @rm -f $(DISTRIB_PATH)/doc/$(IGNORE_DOC_FILES)
+ @cp -rp $$( cat ./scripts/distrib.list ) $(DISTRIB_PATH)/scripts/
+ @rm -rf $(DISTRIB_PATH)/scripts/*/.svn
+
+ @zip -roq $(DISTRIB_PATH).zip $(DISTRIB_PATH)
+ @chmod 664 $(DISTRIB_PATH).zip
+
+else
+
+ @rm -rf $(DISTRIB_PATH)
+ @mkdir -p $(DISTRIB_PATH)/bin $(DISTRIB_PATH)/scripts
+ @mkdir -p $(DISTRIB_PATH)/doc $(DISTRIB_PATH)/support
+
+ @cp -p $(DISTRIB_FILES) $(DISTRIB_PATH)
+ @ln -f $(MAIN_TOOLS) $(DISTRIB_PATH)/bin
+ @for t in $(EXTRA_TOOLS); do [[ -f bin/$(SYSTEM)/$$t ]] \
+ && ln -f bin/$(SYSTEM)/$$t $(DISTRIB_PATH)/bin; done || true
+ @cp -p $(DOC_FILES) $(DISTRIB_PATH)/doc
+ @cp -p $(SUPPORT_FILES) $(DISTRIB_PATH)/support
+ @rm -f $(DISTRIB_PATH)/doc/$(IGNORE_DOC_FILES)
+ @cp -rp $$( cat ./scripts/distrib.list ) $(DISTRIB_PATH)/scripts/
+ @rm -rf $(DISTRIB_PATH)/scripts/*/.svn
+
+ @chmod -R 664 $(DISTRIB_PATH)
+ @chmod a+x $(DISTRIB_PATH)/*.sh $(DISTRIB_PATH)/bin*/*
+ -@ chmod a+x $(DISTRIB_PATH)/scripts/*.sh 2>/dev/null
+ @chmod -R a+X $(DISTRIB_PATH)
+
+ @tar -czf $(DISTRIB_PATH).tar.gz $(DISTRIB_PATH)
+ @chmod 664 $(DISTRIB_PATH).tar.gz
+
+endif
+
+#-----
+
+.PHONY : copy-distrib
+copy-distrib: distrib2
+ @printf "$(LOGFORMAT)" copy "$(DISTRIB_BASE).*" "-> $(DOWNLOAD_DIR)"
+ @[[ -s "$(DISTRIB_I386)" ]] \
+ && cp --preserve=time "$(DISTRIB_I386)" "$(DOWNLOAD_DIR)" \
+ || true
+ @[[ -s "$(DISTRIB_X86_64)" ]] \
+ && cp --preserve=time "$(DISTRIB_X86_64)" "$(DOWNLOAD_DIR)" \
+ || true
+ @[[ -s "$(DISTRIB_CYGWIN)" ]] \
+ && cp --preserve=time "$(DISTRIB_CYGWIN)" "$(DOWNLOAD_DIR)" \
+ || true
+
+#
+#--------------------------
+
+.PHONY : doc
+doc: $(MAIN_TOOLS) templates.sed gen-doc
+ @mkdir -p ./doc
+
+.PHONY : gen-doc
+gen-doc:
+ @printf "$(LOGFORMAT)" create documentation ""
+ @chmod ug+x $(GEN_TEMPLATE)
+ @$(GEN_TEMPLATE)
+
+.PHONY : doc+
+doc+: doc info
+
+#
+#--------------------------
+
+.PHONY : flags
+flags:
+ @echo ""
+ @echo "DEFINES: $(DEFINES)"
+ @echo ""
+ @echo "CFLAGS: $(CFLAGS)"
+ @echo ""
+ @echo "LDFLAGS: $(LDFLAGS)"
+ @echo ""
+ @echo "LIBS: $(LIBS)"
+ @echo ""
+ @echo "C_OBJECTS: $(C_OBJECTS)"
+ @echo ""
+ @echo "UI_FILES: $(UI_FILES)"
+ @echo ""
+ @echo "ALL_TOOLS: $(ALL_TOOLS)"
+ @echo ""
+ @echo "WRAPPER_TOOLS: $(WRAPPER_TOOLS)"
+ @echo ""
+ @echo "ALL_TOOLS_X: $(ALL_TOOLS_X)"
+ @echo ""
+
+#
+#--------------------------
+
+.PHONY : info
+info: szs.def wszst wkclt wkmpt
+ @printf "$(LOGFORMAT)" create info.def ""
+ @mkdir -p doc
+ @./wszst _export makedoc > doc/info.def
+ @./wkclt _export makedoc functions >> doc/info.def
+ @./wkmpt _export makedoc functions >> doc/info.def
+
+#
+#--------------------------
+
+.PHONY : install
+install: all
+ifeq ($(SYSTEM),cygwin)
+ @[[ -d $(DISTRIB_PATH)/bin ]] || make distrib
+ @chmod a+x "$(DISTRIB_PATH)/windows-install.exe"
+ @( cd "$(DISTRIB_PATH)" && ./windows-install.exe )
+else
+ @chmod a+x install.sh
+ @./install.sh --make
+endif
+
+.PHONY : install+
+install+: clean+ all
+ @chmod a+x install.sh
+ @./install.sh --make
+
+#--------------------------
+
+.PHONY : install2
+install2:
+ifeq ($(SYSTEM_LINUX),1)
+
+ @printf "\n---------- INSTALL LINUX/I386 ----------\n\n"
+ @for t in $(ALL_TOOLS_X); do rm -f bin/$$t; done
+ @$(MAKE) --no-print-directory clean+
+ @M32=1 $(MAKE) -j --no-print-directory install
+
+ifeq ($(HAVE_INSTBIN_32),1)
+ @printf "$(LOGFORMAT)" copy "$(INSTBIN)/* to $(INSTBIN_32)"
+ @for f in $(BIN_FILES); do [[ -f $(INSTBIN)/$$f ]] \
+ && cp -p $(INSTBIN)/$$f $(INSTBIN_32); done; true
+endif
+
+ @printf "\n---------- INSTALL LINUX/X86_64 ----------\n\n"
+ @for t in $(ALL_TOOLS_X); do rm -f bin/$$t; done
+ @$(MAKE) --no-print-directory clean+
+ @$(MAKE) -j --no-print-directory install doc info
+
+ifeq ($(HAVE_INSTBIN_64),1)
+ @printf "$(LOGFORMAT)" copy "$(INSTBIN)/* to $(INSTBIN_64)"
+ @for f in $(BIN_FILES); do [[ -f $(INSTBIN)/$$f ]] \
+ && cp -p $(INSTBIN)/$$f $(INSTBIN_64); done; true
+endif
+
+else
+ @$(MAKE) --no-print-directory clean+ install
+endif
+
+#
+#--------------------------
+
+.PHONY : export32
+export32:
+ @printf "\n---------- BUILDING EXPORT (I386) ----------\n\n"
+ @rm -rf ./bin/export-i386
+ @mkdir -p ./bin/export-i386
+ @M32=1 NOWIIMM=1 STATIC=1 $(MAKE) --no-print-directory clean+ all
+ @for f in $(BIN_FILES); do [[ -f ./$$f ]] \
+ && cp -p ./$$f ./bin/export-i386/; done; true
+
+.PHONY : export64
+export64:
+ @printf "\n---------- BUILDING EXPORT (X86_64) ----------\n\n"
+ @rm -rf ./bin/export-x86_64
+ @mkdir -p ./bin/export-x86_64
+ @NOWIIMM=1 STATIC=1 $(MAKE) --no-print-directory clean+ all
+ @for f in $(BIN_FILES); do [[ -f ./$$f ]] \
+ && cp -p ./$$f ./bin/export-x86_64/; done; true
+
+.PHONY : export
+export:
+ifeq ($(SYSTEM_LINUX),1)
+
+ $(MAKE) --no-print-directory export32 export64
+
+else ifeq ($(SYSTEM),cygwin)
+
+ @printf "\n---------- BUILDING EXPORT (CYGWIN) ----------\n\n"
+ @rm -rf ./bin/export-cygwin
+ @mkdir -p ./bin/export-cygwin
+ @NOWIIMM=1 $(MAKE) --no-print-directory clean+ all
+ @for f in $(BIN_FILES); do [[ -f ./$$f ]] \
+ && cp -p ./$$f ./bin/export-cygwin/; done; true
+ @[[ -d "$(EXPORT_DIR)" ]] && cp -r ./bin/export-cygwin "$(EXPORT_DIR)/"
+
+else ifeq ($(SYSTEM),mac)
+
+ @printf "\n---------- BUILDING EXPORT (MAC) ----------\n\n"
+ @rm -rf ./bin/export-mac
+ @mkdir -p ./bin/export-mac
+ @NOWIIMM=1 $(MAKE) --no-print-directory mac-distrib
+ @for f in $(BIN_FILES); do [[ -f ./$$f ]] \
+ && cp -p ./$$f ./bin/export-mac/; done; true
+ @[[ -d "$(EXPORT_DIR)" ]] && cp -r ./bin/export-mac "$(EXPORT_DIR)/"
+
+else
+
+ @printf "\n---------- BUILDING EXPORT ----------\n\n"
+ @rm -rf ./bin/export
+ @mkdir -p ./bin/export
+ @NOWIIMM=1 STATIC=1 $(MAKE) --no-print-directory clean+ all
+ @for f in $(BIN_FILES); do [[ -f ./$$f ]] \
+ && cp -p ./$$f ./bin/export/; done; true
+
+endif
+
+.PHONY : export+
+export+: export
+ @printf "\n---------- BUILDING EXPORT ----------\n\n"
+ @printf "$(LOGFORMAT)" copy "export-bin to DISTRIB & LESERATTE"
+ @cp -p bin/export-x86_64/wszst /n/www/download.wiimm.de/florian/bin/wszst
+ @cp -p bin/export-x86_64/wszst /n/mkw-fun/distrib/bin/linux64/
+ @cp -p bin/export-i386/wszst /n/mkw-fun/distrib/bin/linux32/
+ @cp -p bin/export-cygwin/wszst.exe /n/mkw-fun/distrib/bin/cygwin/ || true
+
+#
+#--------------------------
+
+.PHONY : libexport
+libexport:
+ @printf "$(LOGFORMAT)" export "-> $(LIBEXPORT)"
+ @rm -rf $(LIBEXPORT)
+ @mkdir -p $(LIBEXPORT)
+ @cp -p $(LIBEX_FILES) $(LIBEXPORT)
+
+#
+#--------------------------
+
+.PHONY : new
+new:
+ @printf "$(LOGFORMAT)" enable new "-> define -DNEW_FEATURES"
+ @rm -f *.o $(ALL_TOOLS_X)
+ @echo "-DNEW_FEATURES" >>$(MODE_FILE)
+ @sort $(MODE_FILE) | uniq > $(MODE_FILE).tmp
+# 2 steps to bypass a cygwin mv failure
+ @cp $(MODE_FILE).tmp $(MODE_FILE)
+ @rm -f $(MODE_FILE).tmp
+
+#
+#--------------------------
+
+.PHONY : predef
+predef:
+ @gcc -E -dM none.c | sort
+
+#
+#--------------------------
+
+templates.sed: Makefile
+ @printf "$(LOGFORMAT)" create templates.sed ""
+ @echo -e '' \
+ '/^~/ d;\n' \
+ 's|@.@@@|$(VERSION_NUM)|g;\n' \
+ 's|@@@@-@@-@@|$(DATE)|g;\n' \
+ 's|@@:@@:@@|$(TIME)|g;\n' \
+ 's|@@AUTHOR@@|$(AUTHOR)|g;\n' \
+ 's|@@TOOLSET-SHORT@@|$(TOOLSET_SHORT)|g;\n' \
+ 's|@@TOOLSET-LONG@@|$(TOOLSET_LONG)|g;\n' \
+ 's|@@WSZST-SHORT@@|$(WSZST_SHORT)|g;\n' \
+ 's|@@WSZST-LONG@@|$(WSZST_LONG)|g;\n' \
+ 's|@@WBMGT-SHORT@@|$(WBMGT_SHORT)|g;\n' \
+ 's|@@WBMGT-LONG@@|$(WBMGT_LONG)|g;\n' \
+ 's|@@WCTCT-SHORT@@|$(WCTCT_SHORT)|g;\n' \
+ 's|@@WCTCT-LONG@@|$(WCTCT_LONG)|g;\n' \
+ 's|@@WIMGT-SHORT@@|$(WIMGT_SHORT)|g;\n' \
+ 's|@@WIMGT-LONG@@|$(WIMGT_LONG)|g;\n' \
+ 's|@@WKCLT-SHORT@@|$(WKCLT_SHORT)|g;\n' \
+ 's|@@WKCLT-LONG@@|$(WKCLT_LONG)|g;\n' \
+ 's|@@WKMPT-SHORT@@|$(WKMPT_SHORT)|g;\n' \
+ 's|@@WKMPT-LONG@@|$(WKMPT_LONG)|g;\n' \
+ 's|@@WLECT-SHORT@@|$(WLECT_SHORT)|g;\n' \
+ 's|@@WLECT-LONG@@|$(WLECT_LONG)|g;\n' \
+ 's|@@WMDLT-SHORT@@|$(WMDLT_SHORT)|g;\n' \
+ 's|@@WMDLT-LONG@@|$(WMDLT_LONG)|g;\n' \
+ 's|@@WPATT-SHORT@@|$(WPATT_SHORT)|g;\n' \
+ 's|@@WPATT-LONG@@|$(WPATT_LONG)|g;\n' \
+ 's|@@WSTRT-SHORT@@|$(WSTRT_SHORT)|g;\n' \
+ 's|@@WSTRT-LONG@@|$(WSTRT_LONG)|g;\n' \
+ 's|@@VERSION@@|$(VERSION)|g;\n' \
+ 's|@@VERSION-NUM@@|$(VERSION_NUM)|g;\n' \
+ 's|@@VERSION-INT@@|$(VERSION_INT)|g;\n' \
+ 's|@@BETA-VERSION@@|$(BETA_VERSION)|g;\n' \
+ 's|@@BETA-SUFFIX@@|$(BETA_SUFFIX)|g;\n' \
+ 's|@@REV@@|$(REVISION)|g;\n' \
+ 's|@@REV-NUM@@|$(REVISION_NUM)|g;\n' \
+ 's|@@REV-NEXT@@|$(REVISION_NEXT)|g;\n' \
+ 's|@@BINTIME@@|$(BINTIME)|g;\n' \
+ 's|@@DATE@@|$(DATE)|g;\n' \
+ 's|@@TIME@@|$(TIME)|g;\n' \
+ 's|@@YEAR@@|$(YEAR)|g;\n' \
+ 's|@@INSTALL-PATH@@|$(INSTALL_PATH)|g;\n' \
+ 's|@@BIN-FILES@@|$(BIN_FILES)|g;\n' \
+ 's|@@SHARE-FILES@@|$(SHARE_FILES)|g;\n' \
+ 's|@@CYGWIN-DIR@@|$(CYGWIN_DIR)|g;\n' \
+ 's|@@CYGWIN-TOOLS@@|$(CYGWIN_TOOLS)|g;\n' \
+ 's|@@WIN-INSTALL-PATH@@|$(WIN_INSTALL_PATH)|g;\n' \
+ 's|@@DISTRIB-PATH@@|$(DISTRIB_PATH)|g;\n' \
+ 's|@@DISTRIB-I386@@|$(DISTRIB_I386)|g;\n' \
+ 's|@@DISTRIB-X86_64@@|$(DISTRIB_X86_64)|g;\n' \
+ 's|@@DISTRIB-MAC@@|$(DISTRIB_MAC)|g;\n' \
+ 's|@@DISTRIB-CYGWIN@@|$(DISTRIB_CYGWIN)|g;\n' \
+ 's|@@URI-REPOS@@|$(URI_REPOS)|g;\n' \
+ 's|@@URI-VIEWVC@@|$(URI_VIEWVC)|g;\n' \
+ 's|@@URI-HOME@@|$(URI_HOME)|g;\n' \
+ 's|@@URI-SOURCE@@|$(URI_SOURCE)|g;\n' \
+ 's|@@URI-DOWNLOAD@@|$(URI_DOWNLOAD)|g;\n' \
+ 's|@@URI-DOWNLOAD-I386@@|$(URI_DOWNLOAD_I386)|g;\n' \
+ 's|@@URI-DOWNLOAD-X86_64@@|$(URI_DOWNLOAD_X86_64)|g;\n' \
+ 's|@@URI-DOWNLOAD-MAC@@|$(URI_DOWNLOAD_MAC)|g;\n' \
+ 's|@@URI-DOWNLOAD-CYGWIN@@|$(URI_DOWNLOAD_CYGWIN)|g;\n' \
+ 's|@@HAVE-XSRC@@|$(HAVE_XSRC)|g;\n' \
+ >templates.sed
+
+#
+#--------------------------
+
+.PHONY : st
+st:
+ @printf "$(LOGFORMAT)" svn status
+ @[[ -h xsrc ]] && rm xsrc || true
+ @test -d .svn && svn status | sort -k2 || true
+ @printf "* N="
+ @svn diff | grep ^+ | wc -l
+
+#
+#--------------------------
+
+.PHONY : test
+test:
+ @printf "$(LOGFORMAT)" enable test "-> define -DTEST"
+ @rm -f *.o $(ALL_TOOLS_X)
+ @echo "-DTEST" >>$(MODE_FILE)
+ @sort $(MODE_FILE) | uniq > $(MODE_FILE).tmp
+# 2 steps to bypass a cygwin mv failure
+ @cp $(MODE_FILE).tmp $(MODE_FILE)
+ @rm -f $(MODE_FILE).tmp
+
+#
+#--------------------------
+
+.PHONY : test-trace
+test-trace:
+ @printf "$(LOGFORMAT)" enable testtrace "-> define -DTESTTRACE"
+ @rm -f *.o $(ALL_TOOLS_X)
+ @echo "-DTESTTRACE" >>$(MODE_FILE)
+ @sort $(MODE_FILE) | uniq > $(MODE_FILE).tmp
+# 2 steps to bypass a cygwin mv failure
+ @cp $(MODE_FILE).tmp $(MODE_FILE)
+ @rm -f $(MODE_FILE).tmp
+
+#
+#--------------------------
+
+.PHONY : tools
+tools: $(ALL_TOOLS)
+
+#
+#--------------------------
+
+.PHONY : wait
+wait:
+ @printf "$(LOGFORMAT)" enable wait "-> define -DWAIT_ENABLED"
+ @rm -f *.o $(ALL_TOOLS_X)
+ @echo "-DWAIT_ENABLED" >>$(MODE_FILE)
+ @sort $(MODE_FILE) | uniq > $(MODE_FILE).tmp
+# 2 steps to bypass a cygwin mv failure
+ @cp $(MODE_FILE).tmp $(MODE_FILE)
+ @rm -f $(MODE_FILE).tmp
+
+#
+#--------------------------
+
+.PHONY : wrapper
+wrapper:
+ @printf "$(LOGFORMAT)" create "wrapper scripts"
+ @mkdir -p ./bin/wrapper
+ @for f in $(WRAPPER_TOOLS); do \
+ printf '#!/usr/bin/sh\nwszst %s "$$@"\n' "$$f" >./bin/wrapper/$$f; done
+ @chmod 775 ./bin/wrapper/*
+
+#
+###############################################################################
+# help rule
+
+.PHONY : help
+help:
+ @echo ""
+ @echo "$(DATE) $(TIME) - $(VERSION) - svn r$(REVISION):$(REVISION_NEXT)"
+ @echo ""
+ @echo " make := make all"
+ @echo " make all make all tools and install scripts"
+ @echo " make all+ := make clean+ all distrib"
+ @echo " make _tool_ compile only the named '_tool_' (wszst,...)"
+ @echo " make tools make all tools"
+ @echo " make libexport create directory '$(LIBEXPORT)' with export files."
+ @echo ""
+ @echo " make clean remove all output files"
+ @echo " make clean+ make clean & rm test_files & rm template_output"
+ @echo ""
+ @echo " make debug enable '-DDEBUG'"
+ @echo " make test enable '-DTEST'"
+ @echo " make new enable '-DNEW_FEATURES'"
+ @echo " make wait enable '-DWAIT'"
+ @echo " make testtrace enable '-DTESTTRACE'"
+ @echo " make flags print DEFINES, CFLAGS and LDFLAGS"
+ @echo ""
+ @echo " make doc generate doc files from their templates"
+ @echo " make distrib make all & build $(DISTRIB_PATH)"
+ @echo " make distrib2 make distrib (i386 + X86_64 for linux)"
+ @echo " make install make all & copy tools to $(INSTALL_PATH)"
+ @echo " make install+ := make clean+ install"
+ @echo " make install2 make install+ (i386 + X86_64 for linux)"
+ @echo ""
+ @echo " make chmod change mode 775/644 for known dirs and files"
+ @echo " make chown change owner of all dirs+files to owner of ."
+ @echo " make chgrp change group of all dirs+files to group of ."
+ @echo " make ch+ := make chmod chown chgrp"
+ @echo ""
+ @echo " make help print this help"
+ @echo ""
+ @echo "-------------------------------------------------------------------------------"
+ @awk -F: '/^.PHONY/ { gsub(/[[:blank:]]*/,"",$$2); print $$2}' $(MYMAKE) \
+ | sort | pr -5T -w80
+ @echo "-------------------------------------------------------------------------------"
+
+# @echo "------"
+# @echo $(TOBJ_ALL)
+# @echo "------"
+# @echo $(C_OBJECTS)
+# @echo "------"
+# @echo $(SZS_O)
+# @echo "------"
+
diff --git a/project/Makefile.user b/project/Makefile.user
new file mode 100644
index 0000000..a5badf2
--- /dev/null
+++ b/project/Makefile.user
@@ -0,0 +1 @@
+-include work/Makefile.user