From 7bac8f5a266ab5b0698398f49e401c92dba0fecb Mon Sep 17 00:00:00 2001 From: ketmar Date: Wed, 2 Oct 2013 13:38:05 +0300 Subject: [PATCH] Jambase cleanups --- defaults/configure/Jambase.configure | 3 +- .../Jambase.configure.utils} | 1 + defaults/misc/Jambase.misc | 5 +- defaults/misc/{fsys => }/Jambase.misc.fsys | 62 ++++++++-------------- defaults/misc/{opts => }/Jambase.misc.opts | 29 ++++------ 5 files changed, 37 insertions(+), 63 deletions(-) rename defaults/{misc/utils/Jambase.misc.utils => configure/Jambase.configure.utils} (99%) rename defaults/misc/{fsys => }/Jambase.misc.fsys (78%) rename defaults/misc/{opts => }/Jambase.misc.opts (61%) diff --git a/defaults/configure/Jambase.configure b/defaults/configure/Jambase.configure index a0c2209..9a30e33 100644 --- a/defaults/configure/Jambase.configure +++ b/defaults/configure/Jambase.configure @@ -413,5 +413,4 @@ rule configure { } . Jambase.configure.compile - -# -Do-Configure- ; +. Jambase.configure.utils diff --git a/defaults/misc/utils/Jambase.misc.utils b/defaults/configure/Jambase.configure.utils similarity index 99% rename from defaults/misc/utils/Jambase.misc.utils rename to defaults/configure/Jambase.configure.utils index c21b584..3bfe9cd 100644 --- a/defaults/misc/utils/Jambase.misc.utils +++ b/defaults/configure/Jambase.configure.utils @@ -1,6 +1,7 @@ # libnames : includes : pathes [ : allow-any-lib allow-any-header ] DETECT_LIBRARY_PATH = /usr /usr/local ; + rule DetectLibrary { local pfx n havelibs haveh nn ; local allow-any-lib allow-any-header ; diff --git a/defaults/misc/Jambase.misc b/defaults/misc/Jambase.misc index 1807e16..b0cafa0 100644 --- a/defaults/misc/Jambase.misc +++ b/defaults/misc/Jambase.misc @@ -147,6 +147,5 @@ rule IsG++ { } -. fsys/Jambase.misc.fsys -. opts/Jambase.misc.opts -. utils/Jambase.misc.utils +. Jambase.misc.fsys +. Jambase.misc.opts diff --git a/defaults/misc/fsys/Jambase.misc.fsys b/defaults/misc/Jambase.misc.fsys similarity index 78% rename from defaults/misc/fsys/Jambase.misc.fsys rename to defaults/misc/Jambase.misc.fsys index 52d6f78..2c380a5 100644 --- a/defaults/misc/fsys/Jambase.misc.fsys +++ b/defaults/misc/Jambase.misc.fsys @@ -1,24 +1,21 @@ rule IsRootDir { - local res = ; - # # handle "C:", "C:/", "/cygdrive" and "/cygdrive/" in Cygwin if $(NT) { switch $(<:G=:R=) { - case "*:" : res = "1" ; - case '*:\' : res = "1" ; + case "*:" : return 1 ; + case '*:\' : return 1 ; } } else if $(UNIX) && $(OS) = CYGWIN { switch $(<:G=:R=) { - case "?:" : res = "1" ; - case "?:/" : res = "1" ; - case "/cygdrive" : res = "1" ; - case "/cygdrive/" : res = "1" ; + case "?:" : return 1 ; + case "?:/" : return 1 ; + case "/cygdrive" : return 1 ; + case "/cygdrive/" : return 1 ; } } else if $(<:G=:R=) = "/" || $(<) = $(<:D) { - res = "1" ; + return 1 ; } - # - return $(res) ; + return ; # empty list } @@ -164,6 +161,7 @@ rule Shell { Chmod $(<) ; } +# "dont-touch" thingy is THE comment for mkjambase #DONT_TOUCH actions Shell { $(AWK) ' @@ -210,51 +208,35 @@ rule Bulk { rule FileExists names { - local _fn _lst _dir _name ; - - for _fn in $(names) { - _dir = [ Match '^(.*?)/[^/]+$' : $(_fn) ] ; - _name = [ Match '^.*?/([^/]+)$' : $(_fn) ] ; - if ! $(_dir) { _dir = . ; } - #Echo "_dir:" $(_dir) ; - #Echo "_name:" $(_name) ; - _lst = [ Glob $(_dir) : $(_name) : plain files-only ] ; - #Echo "_lst:" $(_lst) ; - if ! $(_lst) { return ; } + for local _fn in $(names) { + local _dir = [ Match '^(.*?)/[^/]+$' : $(_fn) ] ; + local _name = [ Match '^.*?/([^/]+)$' : $(_fn) ] ; + if ! $(_dir) { _dir = "." ; } + if ! ( [ Glob $(_dir) : $(_name) : plain files-only ] ) { return ; } } return "tan" ; } rule DirExists names { - local _fn _lst _dir _name ; - - for _fn in $(names) { - _dir = [ Match '^(.*?)/[^/]+$' : $(_fn) ] ; - _name = [ Match '^.*?/([^/]+)$' : $(_fn) ] ; - if ! $(_dir) { _dir = . ; } - #Echo "_dir:" $(_dir) ; - #Echo "_name:" $(_name) ; - _lst = [ Glob $(_dir) : $(_name) : plain dirs-only ] ; - #Echo "_lst:" $(_lst) ; - if ! $(_lst) { return ; } + for local _fn in $(names) { + local _dir = [ Match '^(.*?)/[^/]+$' : $(_fn) ] ; + local _name = [ Match '^.*?/([^/]+)$' : $(_fn) ] ; + if ! $(_dir) { _dir = "." ; } + if ! ( [ Glob $(_dir) : $(_name) : plain dirs-only ] ) { return ; } } return "tan" ; } # build list of files in directory and all subdirs -# prepends add file names with $(dir) +# prepends all file names with $(dir) rule BuildFileList dir : mask { local _lst = [ Glob $(dir) : $(mask) : files-only ] ; local _dirs = [ Glob $(dir) : '[^_.]*' : dirs-only ] ; - local _dn _l ; - - for _dn in $(_dirs) { - #Echo "dir:" $(_dn) ; - _l = [ BuildFileList $(_dn) : $(mask) ] ; + for local _dn in $(_dirs) { + local _l = [ BuildFileList $(_dn) : $(mask) ] ; _lst += $(_l) ; } - return $(_lst) ; } diff --git a/defaults/misc/opts/Jambase.misc.opts b/defaults/misc/Jambase.misc.opts similarity index 61% rename from defaults/misc/opts/Jambase.misc.opts rename to defaults/misc/Jambase.misc.opts index 3e5f8d0..557281f 100644 --- a/defaults/misc/opts/Jambase.misc.opts +++ b/defaults/misc/Jambase.misc.opts @@ -1,33 +1,25 @@ -# VAR = [ RemoveOptWild regexp-options-to-remove : options-list : flags ] ; +# VAR = [ RemoveOptWild regexp-options-to-remove : options-list ] ; # remove options from list with egrep-like regexps rule RemoveOptWild oname : str { local res = ; - #Echo "removing " $(oname) " from " $(str) ; for local _f in $(str) { - local _t = [ Match $(oname) : $(_f) ] ; - #Echo $(f) ": " $(t) ; - if ! $(_t) { - #Echo "include: " $(f) ; - res += $(_f) ; - } + # don't change this to '~=', 'cause oname can contain more that one regexp + if ! ( [ Match $(oname) : $(_f) ] ) { res += $(_f) ; } } return $(res) ; } -rule remove-std99-flags optlist { - optlist -= "-std=c99" "-std=gnu99" ; - return $(optlist) ; -} - - # remove-opt-flags $(var) # remove optimization flags from compiler options rule remove-opt-flags { - local orm = '^-march=' '^-mtune=' '^-mfpmath=' '^-O[0-9s]$' ; - local ormff = '^-f[^n][^o]' ; - local res = [ RemoveOptWild $(orm) $(ormff) : $(<) ] ; - return $(res) ; + return [ RemoveOptWild + '^-O[0-9s]$' + '^-march=' + '^-mtune=' + '^-mfpmath=' + '^-fwrapv$' + '^-f[^n][^o]' : $(<) ] ; } @@ -36,6 +28,7 @@ rule remove-opt-flags-for-all-compilers { C++OPTIM = [ remove-opt-flags $(C++OPTIM) ] ; OBJCOPTIM = [ remove-opt-flags $(OBJCOPTIM) ] ; OPTIM.all = [ remove-opt-flags $(OPTIM.all) ] ; + CFLAGS.all = [ remove-opt-flags $(CFLAGS.all) ] ; } -- 2.11.4.GIT