Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package icmake for openSUSE:Factory checked 
in at 2026-10-20 12:39:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/icmake (Old)
 and      /work/SRC/openSUSE:Factory/.icmake.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "icmake"

Tue Oct 20 12:39:33 2026 rev:19 rq:1386218 version:13.07.00

Changes:
--------
--- /work/SRC/openSUSE:Factory/icmake/icmake.changes    2026-09-14 
16:25:37.866741855 +0200
+++ /work/SRC/openSUSE:Factory/.icmake.new.3698736/icmake.changes       
2026-10-20 12:41:16.650910326 +0200
@@ -1,0 +2,13 @@
+Fri Oct 16 16:26:44 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to 13.07.00:
+  * Compiled top-level object files now start with ',' (e.g. ,main.o),
+    continuing 13.06.00's directory-prefix change.
+  * Object file prefixes are now configurable: with '#define OBJ_SEP <char>'
+    in icmconf, object files get their directory name followed by that
+    character instead of their class number.
+  * The recency check of the lexical scanner (#define SCANNER_DIR) and
+    parser (#define PARSER_DIR) configuration files now only runs when
+    icmbuild constructs a program or library.
+
+-------------------------------------------------------------------

Old:
----
  icmake-13.06.01.tar.bz2

New:
----
  icmake-13.07.00.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ icmake.spec ++++++
--- /var/tmp/diff_new_pack.qXYMdh/_old  2026-10-20 12:41:17.449943767 +0200
+++ /var/tmp/diff_new_pack.qXYMdh/_new  2026-10-20 12:41:17.451943851 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           icmake
-Version:        13.06.01
+Version:        13.07.00
 Release:        0
 Summary:        A program maintenance (make) utility using a C-like grammar
 License:        GPL-3.0-only

++++++ icmake-13.06.01.tar.bz2 -> icmake-13.07.00.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/VERSION 
new/icmake-13.07.00/icmake/VERSION
--- old/icmake-13.06.01/icmake/VERSION  2026-09-04 11:14:56.000000000 +0200
+++ new/icmake-13.07.00/icmake/VERSION  2026-10-04 13:16:00.000000000 +0200
@@ -1,3 +1,3 @@
-VERSION=13.06.01
+VERSION=13.07.00
 YEARS=1992-2026
 AUTHOR="Frank B. Brokken ([email protected])"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/build2nd/icmconf.programs 
new/icmake-13.07.00/icmake/build2nd/icmconf.programs
--- old/icmake-13.06.01/icmake/build2nd/icmconf.programs        2026-09-04 
11:14:56.000000000 +0200
+++ new/icmake-13.07.00/icmake/build2nd/icmconf.programs        2026-10-04 
13:16:00.000000000 +0200
@@ -1,5 +1,6 @@
 // see also ~/.icmake/icmconf.mod for a possible module-using icmconf 
 
+#define OBJ_SEP             ","
 #define NOCOLORS             "-fdiagnostics-color=never -Dfbb"
 
 #define MULTICOMP           "jobs -q"
@@ -15,7 +16,8 @@
 #define USE_ECHO            ON
 #define IH                  ".ih"
 
-#define CXX                 "ccache g++"
+//#define CXX                 "ccache g++"
+#define CXX                 "g++"
 #define CXXFLAGS            "-Wall -Werror -O2 " ${NOCOLORS}
 
 #define REFRESH
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/build2nd/icmconf.support 
new/icmake-13.07.00/icmake/build2nd/icmconf.support
--- old/icmake-13.06.01/icmake/build2nd/icmconf.support 2026-09-04 
11:14:56.000000000 +0200
+++ new/icmake-13.07.00/icmake/build2nd/icmconf.support 2026-10-04 
13:16:00.000000000 +0200
@@ -1,4 +1,5 @@
-#define NOCOLORS               "-fdiagnostics-color=never -Dfbb"
+#define OBJ_SEP             ","
+#define NOCOLORS            "-fdiagnostics-color=never -Dfbb"
 
 #define LIBRARY             "tmp"
 
@@ -14,7 +15,8 @@
 #define USE_ECHO              ON
 #define IH                  ".ih"
 
-#define CXX                 "ccache g++"
+//#define CXX                 "ccache g++"
+#define CXX                 "g++"
 #define CXXFLAGS            "-Wall -Werror -O2 " ${NOCOLORS}
 
 #define REFRESH
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/changelog 
new/icmake-13.07.00/icmake/changelog
--- old/icmake-13.06.01/icmake/changelog        2026-09-04 11:14:56.000000000 
+0200
+++ new/icmake-13.07.00/icmake/changelog        2026-10-04 13:16:00.000000000 
+0200
@@ -1,3 +1,20 @@
+icmake (13.07.00)
+
+  * By default source files are compiled to object files having their class
+    numbers as prefix. When the icmconf file contains #define OBJ_SEP ","
+    where "," can be any valid filename character not appearing in the
+    directory- or sourcefile-names then the object files receive their
+    directory names followed by OBJ_SEP as their prefix. See the icmconf(7)
+    and icmbuild(1) man-pages for details.
+
+  * When using a lexical scanner (#define SCANNER_DIR) or parser (#define
+    PARSER_DIR) is configured the recency check of their configuration files
+    are only checked when icmbuild constructs a program or a library.
+
+  * Compiled top-level object files now start with ','. E.g., ',main.o'.
+
+ -- Frank B. Brokken <[email protected]>  Sat, 03 Oct 2026 14:39:34 +0200
+
 icmake (13.06.01)
 
   * cosmetic change fixing lintian's error
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/doc/icmake.1 
new/icmake-13.07.00/icmake/doc/icmake.1
--- old/icmake-13.06.01/icmake/doc/icmake.1     2026-09-04 11:14:56.000000000 
+0200
+++ new/icmake-13.07.00/icmake/doc/icmake.1     2026-10-04 13:16:00.000000000 
+0200
@@ -1,4 +1,4 @@
-.TH "icmake" "1" "1992\-2026" "icmake\&.13\&.06\&.01" "A program maintenance 
utility"
+.TH "icmake" "1" "1992\-2026" "icmake\&.13\&.07\&.00" "A program maintenance 
utility"
 
 .PP 
 .SH "NAME"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/doc/icmbuild.1 
new/icmake-13.07.00/icmake/doc/icmbuild.1
--- old/icmake-13.06.01/icmake/doc/icmbuild.1   2026-09-04 11:14:56.000000000 
+0200
+++ new/icmake-13.07.00/icmake/doc/icmbuild.1   2026-10-04 13:16:00.000000000 
+0200
@@ -1,4 +1,4 @@
-.TH "icmbuild" "1" "1992\-2026" "icmake\&.13\&.06\&.01" "Icmake\(cq\&s generic 
program maintenance facility"
+.TH "icmbuild" "1" "1992\-2026" "icmake\&.13\&.07\&.00" "Icmake\(cq\&s generic 
program maintenance facility"
 
 .PP 
 .SH "NAME"
@@ -67,12 +67,13 @@
 Enter the names of subdirectories containing sources on separate
 lines in the file \fICLASSES\fP
 .IP 
-Note that the order of the classes mentioned in \fICLASSES\fP \fIis\fP
-relevant in that new class (subdirectory) names can always be added to
-the end of the file \fICLASSES\fP\&. Reordering the lines in the
-\fICLASSES\fP file should be avoided as that most likely results in
-overwriting identically named object files from already existing
-directories\&. 
+When the \fIOBJ_SEP\fP define is not specified (cf\&. \fBicmconf\fP(7)) then
+the ordering of the classes in the \fICLASSES\fP file \fIis\fP
+important\&. The ordering should not be modified but new class
+(subdirectory) names can always be added to the end of the file
+\fICLASSES\fP\&. Reordering the lines in the \fICLASSES\fP file should be
+avoided as that most likely results in overwriting identically named
+object files from already existing directories\&.
 .IP 
 If reordering is necessary, then first run the command \fIicmbuild
 clean\fP to remove all files that were thus far created by
@@ -83,6 +84,18 @@
 file \fIx\&.o\fP from class \fIA\fP by file \fIx\&.o\fP from class \fIB\fP is
 prevented;
 .IP 
+When the \fIOBJ_SEP\fP define is specified the names of subdirectories in
+the \fICLASSES\fP file can be reordered\&. In this case the names of
+object files start with the source files\(cq\& subdirectory names, followed
+by the character specified by the \fIOBJ_SEP\fP define, followed by the
+files\(cq\& base names, followed by the extension specified by the
+\fIOBJ_EXT\fP define\&. E\&.g\&., if a source file \fIappend\&.cc\fP is 
defined in
+the subdirectory \fIprocess\fP then its object file, assuming \fI#define
+OBJ_SEP \(dq\&,\(dq\&\fP was defined, is named \fIprocess,append\&.o\fP\&. For 
source
+files defined in the program\(cq\&s top\-level directory there is no
+subdirectory\&. E\&.g\&., for \fImain\&.cc\fP the \fI,main\&.o\fP object file 
is
+generated\&.
+.IP 
 .IP o 
 Start \fIicmbuild\fP\&.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/doc/icmconf.7 
new/icmake-13.07.00/icmake/doc/icmconf.7
--- old/icmake-13.06.01/icmake/doc/icmconf.7    2026-09-04 11:14:56.000000000 
+0200
+++ new/icmake-13.07.00/icmake/doc/icmconf.7    2026-10-04 13:16:00.000000000 
+0200
@@ -1,4 +1,4 @@
-.TH "icmconf" "7" "1992\-2026" "icmake\&.13\&.06\&.01" "configuration file for 
\fBicmbuild\fP(1)"
+.TH "icmconf" "7" "1992\-2026" "icmake\&.13\&.07\&.00" "configuration file for 
\fBicmbuild\fP(1)"
 
 .PP 
 .SH "NAME"
@@ -243,6 +243,21 @@
 the compiler;
 .IP 
 .IP o 
+\fB//#define OBJ_SEP   \(dq\&,\(dq\&\fP
+.br 
+When \fIOBJ_SEP\fP is specified the names of subdirectories in
+the \fICLASSES\fP file can be reordered\&. In this case the names of
+object files start with the source files\(cq\& subdirectory names, followed
+by the character specified by the \fIOBJ_SEP\fP define, followed by the
+files\(cq\& base names, followed by the extension specified by the
+\fIOBJ_EXT\fP define\&. E\&.g\&., if a source file \fIappend\&.cc\fP is 
defined in
+the subdirectory \fIprocess\fP then its object file, assuming \fI#define
+OBJ_SEP \(dq\&,\(dq\&\fP was defined, is named \fIprocess,append\&.o\fP\&. For 
source
+files defined in the program\(cq\&s top\-level directory there is no
+subdirectory\&. E\&.g\&., for \fImain\&.cc\fP the \fI,main\&.o\fP object file 
is
+generated\&.
+.IP 
+.IP o 
 \fB//#define PRECOMP   \(dq\&\-x c++\-header\(dq\&\fP
 .br 
 (deprecated, consider declaring \fI#define SPCH\fP instead) 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/doc/icmodmap.1 
new/icmake-13.07.00/icmake/doc/icmodmap.1
--- old/icmake-13.06.01/icmake/doc/icmodmap.1   2026-09-04 11:14:56.000000000 
+0200
+++ new/icmake-13.07.00/icmake/doc/icmodmap.1   2026-10-04 13:16:00.000000000 
+0200
@@ -1,4 +1,4 @@
-.TH "icmodmap" "1" "1992\-2026" "icmake\&.13\&.06\&.01" "initializes C++ 
projects using modules"
+.TH "icmodmap" "1" "1992\-2026" "icmake\&.13\&.07\&.00" "initializes C++ 
projects using modules"
 
 .PP 
 .SH "NAME"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/doc/icmscript.7 
new/icmake-13.07.00/icmake/doc/icmscript.7
--- old/icmake-13.06.01/icmake/doc/icmscript.7  2026-09-04 11:14:56.000000000 
+0200
+++ new/icmake-13.07.00/icmake/doc/icmscript.7  2026-10-04 13:16:00.000000000 
+0200
@@ -1,4 +1,4 @@
-.TH "icmscript" "7" "1992\-2026" "icmake\&.13\&.06\&.01" "The icmake scripting 
language"
+.TH "icmscript" "7" "1992\-2026" "icmake\&.13\&.07\&.00" "The icmake scripting 
language"
 
 .PP 
 .SH "NAME"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/doc/icmstart.1 
new/icmake-13.07.00/icmake/doc/icmstart.1
--- old/icmake-13.06.01/icmake/doc/icmstart.1   2026-09-04 11:14:56.000000000 
+0200
+++ new/icmake-13.07.00/icmake/doc/icmstart.1   2026-10-04 13:16:00.000000000 
+0200
@@ -1,4 +1,4 @@
-.TH "icmstart" "1" "1992\-2026" "icmake\&.13\&.06\&.01" "starts icmbuild 
program maintenance"
+.TH "icmstart" "1" "1992\-2026" "icmake\&.13\&.07\&.00" "starts icmbuild 
program maintenance"
 
 .PP 
 .SH "NAME"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/doc/icmstart.rc.7 
new/icmake-13.07.00/icmake/doc/icmstart.rc.7
--- old/icmake-13.06.01/icmake/doc/icmstart.rc.7        2026-09-04 
11:14:56.000000000 +0200
+++ new/icmake-13.07.00/icmake/doc/icmstart.rc.7        2026-10-04 
13:16:00.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "icmstart\&.rc" "7" "1992\-2026" "icmake\&.13\&.06\&.01" "icmstart 
resource file"
+.TH "icmstart\&.rc" "7" "1992\-2026" "icmake\&.13\&.07\&.00" "icmstart 
resource file"
 
 .PP 
 .SH "NAME"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/doc/manpage/icmbuild.yo 
new/icmake-13.07.00/icmake/doc/manpage/icmbuild.yo
--- old/icmake-13.06.01/icmake/doc/manpage/icmbuild.yo  2026-09-04 
11:14:56.000000000 +0200
+++ new/icmake-13.07.00/icmake/doc/manpage/icmbuild.yo  2026-10-04 
13:16:00.000000000 +0200
@@ -89,14 +89,15 @@
     it() Enter the names of subdirectories containing sources on separate
        lines in the file tt(CLASSES)
 
-       Note that the order of the classes mentioned in tt(CLASSES) em(is)
-        relevant in that new class (subdirectory) names can always be added to
-        the end of the file tt(CLASSES). Reordering the lines in the
-        tt(CLASSES) file should be avoided as that most likely results in
-        overwriting identically named object files from already existing
-        directories. 
+       When the tt(OBJ_SEP) define is not specified (cf. bf(icmconf)(7)) then
+        the ordering of the classes in the tt(CLASSES) file em(is)
+        important. The ordering should not be modified but new class
+        (subdirectory) names can always be added to the end of the file
+        tt(CLASSES). Reordering the lines in the tt(CLASSES) file should be
+        avoided as that most likely results in overwriting identically named
+        object files from already existing directories.
 
-        If reordering is necessary, then first run the command tt(icmbuild
+       If reordering is necessary, then first run the command tt(icmbuild
         clean) to remove all files that were thus far created by
         icb(). Recompilation is necessary as the names of the object files
         contain class order-numbers for identification.  These class-order
@@ -105,6 +106,18 @@
         file tt(x.o) from class tt(A) by file tt(x.o) from class tt(B) is
         prevented;
 
+       When the tt(OBJ_SEP) define is specified the names of subdirectories in
+        the tt(CLASSES) file can be reordered. In this case the names of
+        object files start with the source files' subdirectory names, followed
+        by the character specified by the tt(OBJ_SEP) define, followed by the
+        files' base names, followed by the extension specified by the
+        tt(OBJ_EXT) define. E.g., if a source file tt(append.cc) is defined in
+        the subdirectory tt(process) then its object file, assuming tt(#define
+        OBJ_SEP ",") was defined, is named tt(process,append.o). For source
+        files defined in the program's top-level directory there is no
+        subdirectory. E.g., for tt(main.cc) the tt(,main.o) object file is
+        generated.
+
     it() Start tt(icmbuild).
     )    
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/doc/manpage/icmconf.yo 
new/icmake-13.07.00/icmake/doc/manpage/icmconf.yo
--- old/icmake-13.06.01/icmake/doc/manpage/icmconf.yo   2026-09-04 
11:14:56.000000000 +0200
+++ new/icmake-13.07.00/icmake/doc/manpage/icmconf.yo   2026-10-04 
13:16:00.000000000 +0200
@@ -224,6 +224,19 @@
        this directive specifies the extension of object modules created by
         the compiler;
 
+    itb(//#define OBJ_SEP   ",")
+       When tt(OBJ_SEP) is specified the names of subdirectories in
+        the tt(CLASSES) file can be reordered. In this case the names of
+        object files start with the source files' subdirectory names, followed
+        by the character specified by the tt(OBJ_SEP) define, followed by the
+        files' base names, followed by the extension specified by the
+        tt(OBJ_EXT) define. E.g., if a source file tt(append.cc) is defined in
+        the subdirectory tt(process) then its object file, assuming tt(#define
+        OBJ_SEP ",") was defined, is named tt(process,append.o). For source
+        files defined in the program's top-level directory there is no
+        subdirectory. E.g., for tt(main.cc) the tt(,main.o) object file is
+        generated.
+
     itb(//#define PRECOMP   "-x c++-header")
        (deprecated, consider declaring tt(#define SPCH) instead) nl()
        define this directive to construct class-specific pre-compiled headers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/icmconf.lib 
new/icmake-13.07.00/icmake/icmconf.lib
--- old/icmake-13.06.01/icmake/icmconf.lib      2026-09-04 11:14:56.000000000 
+0200
+++ new/icmake-13.07.00/icmake/icmconf.lib      2026-10-04 13:16:00.000000000 
+0200
@@ -1,5 +1,4 @@
-#include "c++std"
-
+#define OBJ_SEP             ","
 #define CLS
 #define SOURCES             "*.cc"
 #define OBJ_EXT             ".o"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/scripts/ib/checkgrammar 
new/icmake-13.07.00/icmake/scripts/ib/checkgrammar
--- old/icmake-13.06.01/icmake/scripts/ib/checkgrammar  2026-09-04 
11:14:56.000000000 +0200
+++ new/icmake-13.07.00/icmake/scripts/ib/checkgrammar  2026-10-04 
13:16:00.000000000 +0200
@@ -1,5 +1,8 @@
 void checkGrammar()                         // check updating 'grammar'
 {
+    if (g_command <= _install)
+        return;
+
     chdir(PARSER_DIR);
 
     list gramfiles = makelist(PARSSPEC);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/scripts/ib/checklexer 
new/icmake-13.07.00/icmake/scripts/ib/checklexer
--- old/icmake-13.06.01/icmake/scripts/ib/checklexer    2026-09-04 
11:14:56.000000000 +0200
+++ new/icmake-13.07.00/icmake/scripts/ib/checklexer    2026-10-04 
13:16:00.000000000 +0200
@@ -1,5 +1,8 @@
 void checkLexer()                               // check updating 'lexer'
 {
+    if (g_command <= _install)
+        return;
+
     chdir(SCANNER_DIR);
 
     #ifdef PARSER_DIR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/scripts/ib/compileall 
new/icmake-13.07.00/icmake/scripts/ib/compileall
--- old/icmake-13.06.01/icmake/scripts/ib/compileall    2026-09-04 
11:14:56.000000000 +0200
+++ new/icmake-13.07.00/icmake/scripts/ib/compileall    2026-10-04 
13:16:00.000000000 +0200
@@ -1,44 +1,57 @@
-#ifdef MULTICOMP
 void c_compile(int prefix, string destDir, string srcDir, list cfiles)
 {
-    fprintf << (TMP_DIR '/' + multicomp[0]) << 
-                ": " << srcDir << ' ' << destDir << ' ';
-
-    if (prefix != 0)
-        fprintf << (TMP_DIR '/' + multicomp[0]) << srcDir;
-
-    fprintf << (TMP_DIR '/' + multicomp[0]) << ",\n";
-
+#ifdef MULTICOMP
+    #ifdef OBJ_SEP
+        fprintf << (TMP_DIR '/' + multicomp[0]) << 
+                    ": " << srcDir << ' ' << destDir << ' ';
+    
+        if (prefix != 0)
+            fprintf << (TMP_DIR '/' + multicomp[0]) << srcDir;
+    
+        fprintf << (TMP_DIR '/' + multicomp[0]) << ",\n";
+    #else
+        fprintf << (TMP_DIR '/' + multicomp[0]) << 
+                    ": " << srcDir << ' ' << destDir << ' ' << prefix << '\n'; 
+    #endif
     if (srcDir != "")
         srcDir += "/";
-
     for (int idx = listlen(cfiles); idx--; )
     {
         fprintf << (TMP_DIR '/' +  multicomp[0]) << cfiles[idx] << '\n';
         g_compiled = 1;
     }
-}
 #else
-void c_compile(int prefix, string destDir, string srcDir, list cfiles)
-{
-    string compiler = g_compiler + " -c -o " + destDir + "/";
-    if (prefix != 0)
-        compiler += srcDir;
-
     showCd(srcDir);
 
-    if (srcDir != "")
-        srcDir += "/";
+    #ifdef OBJ_SEP
+        string compiler = g_compiler + " -c -o " + destDir + "/";
+        if (prefix != 0)
+            compiler += srcDir;
+        if (srcDir != "")
+            srcDir += "/";
+        for (int idx = listlen(cfiles); idx--; )
+        {
+            string file = cfiles[idx];
+            system(compiler + ',' + change_ext(file, OBJ_EXT) + " " + srcDir + 
+                                                                        file);
+            g_compiled = 1;
+        }
+    #else
+        if (srcDir != "")
+            srcDir += "/";
+        string compiler = g_compiler + " -c -o " + destDir + "/" + 
+                                                            (string)prefix;
+        for (int idx = listlen(cfiles); idx--; )
+        {
+            string file = cfiles[idx];
+            system(compiler + change_ext(file, OBJ_EXT) + " " + srcDir + 
+                                                                        file);
+            g_compiled = 1;
+        }
+    #endif
 
-    for (int idx = listlen(cfiles); idx--; )
-    {
-        string file = cfiles[idx];
-        system(compiler + ',' + change_ext(file, OBJ_EXT) + " " +
-                                                            srcDir + file);
-        g_compiled = 1;
-    }
-}
 #endif
+}
 
 void std_cpp(int ignoreMain, string destDir, 
             int prefix, string srcDir, string library)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/scripts/ib/inspect 
new/icmake-13.07.00/icmake/scripts/ib/inspect
--- old/icmake-13.06.01/icmake/scripts/ib/inspect       2026-09-04 
11:14:56.000000000 +0200
+++ new/icmake-13.07.00/icmake/scripts/ib/inspect       2026-10-04 
13:16:00.000000000 +0200
@@ -29,25 +29,24 @@
 list inspect(string destDir, 
              int prefix, string srcDir, list srcList, string library)
 {
+#ifdef OBJ_SEP
     string oprefix = destDir + "/";
-    if (prefix != 0)
-        oprefix += srcDir + ',';
 
+    if (prefix != 0)
+        oprefix += srcDir;
+    oprefix += ',';
+#else
+    string oprefix = destDir + "/" + (string)prefix;
+#endif
     srcDir += "/";
-
     #ifdef USE_ALL
         string all = srcDir + USE_ALL;
     #endif
-
     for (int idx = listlen(srcList); idx--; )
     {
         string file  = srcList[idx];   
         string source = srcDir + file;
-        string ofile = oprefix + change_ext(file, "o");    // make o-filename
-
-        // printf("inspect: source: ", source, ", ofile: ", ofile, ", lib: ",
-        //        library, "\n");
-
+        string ofile = oprefix + change_ext(file, "o");
         #ifdef USE_ALL
             if (ofile older all)
             {
@@ -61,3 +60,4 @@
     }
     return srcList;
 }
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/scripts/ib/main 
new/icmake-13.07.00/icmake/scripts/ib/main
--- old/icmake-13.06.01/icmake/scripts/ib/main  2026-09-04 11:14:56.000000000 
+0200
+++ new/icmake-13.07.00/icmake/scripts/ib/main  2026-10-04 13:16:00.000000000 
+0200
@@ -35,6 +35,15 @@
     if (g_command == _cleanTmp)     // keep the .gch files if existing.
         cleanTmp();
 
+    #ifdef OBJ_SEP
+        if (strlen(OBJ_SEP) != 1)
+        {
+            printf << "strlen(OBJ_SEP) must be 1. Currently defined as: `"  
+                                                                OBJ_SEP "'\n";
+            exit(1);
+        }
+    #endif
+
     if (g_command == _cleanGch)
         cleanPrecomp();
         
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/scripts/ib/program 
new/icmake-13.07.00/icmake/scripts/ib/program
--- old/icmake-13.06.01/icmake/scripts/ib/program       2026-09-04 
11:14:56.000000000 +0200
+++ new/icmake-13.07.00/icmake/scripts/ib/program       2026-10-04 
13:16:00.000000000 +0200
@@ -1,7 +1,11 @@
 void program()
 {
     #ifdef MAIN
-        string maino = change_ext(MAIN, OBJ_EXT);
+        #ifdef OBJ_SEP
+                string maino = ',' + change_ext(MAIN, OBJ_EXT);
+        #else
+                string maino = change_ext(MAIN, OBJ_EXT);
+        #endif
     
         md(TMP_DIR "/bin");
     
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/icmake-13.06.01/icmake/usr/share/icmake/icmconf 
new/icmake-13.07.00/icmake/usr/share/icmake/icmconf
--- old/icmake-13.06.01/icmake/usr/share/icmake/icmconf 2026-09-04 
11:14:56.000000000 +0200
+++ new/icmake-13.07.00/icmake/usr/share/icmake/icmconf 2026-10-04 
13:16:00.000000000 +0200
@@ -6,12 +6,16 @@
 // MAINTENANCE RELATED DEFINES THAT ARE TAILORED TO THE CURRENT PROJECT:
 // =====================================================================
 
+    // Uncomment to generate object files preceded by their source file
+    // directories and (single character containing) OBJ_SEP
+//#define OBJ_SEP             ","
+
     // Uncomment to clear the screen starting the compilation
 //#define CLS
 
     // Uncomment to construct a library. Optionally use another name (don't
     // use lib or an extension like .a)
-//#define LIBRARY             "ofiles"
+//#define LIBRARY           "ofiles"
 
     // The source containing main():
 #define MAIN                "main.cc"
@@ -72,8 +76,13 @@
     // the following #define. See also #define CXXFLAGS and #define SPCH below
 //#define NOCOLORS          "-fdiagnostic-colors=never"
 
-    // The compiler to use. Define CC if a C compiler is used. 
+    // The compiler to use. Activate the '//#define CC' line if a C compiler
+    // is used.  
+    // To use 'ccache' when compiling C++ source files comment out the next
+    // #define and activate the #define beyond it.
 #define CXX                 "g++"
+//#define CXX                 "ccache g++"
+
 //#define CC                  "gcc"
 
     // The standard compiler options to use. Define CFLAGS if a C compiler is

Reply via email to