"Markus Mauhart" <[EMAIL PROTECTED]> wrote ... > > I will post the necessary URLs to reproduce my tests today.
If any "gnumake -j" - related problems occur, please take a look at my sources: http://members.chello.at/ejg8dk49/make.cvs.20060114.j_patch.zip Download the archive containing the sources of TheIDE (we will build this application, it is UPP's IDE, see http://upp.sourceforge.net/index.html): http://prdownloads.sourceforge.net/upp/upp-src-511.zip?download Some months ago I had no problem under w32 to use the same sources but with UNIX lineends, the corresponding archive would be ... http://prdownloads.sourceforge.net/upp/upp-linux386-511.tar.gz?download ... this one also contains a (handcrafted) Makefile to build TheIDE under Linux (which is UPP's IDE, "TheIDE"), and also a pre-built binary. Decide for a source directory: SRC=... extract the archive to $SRC UPPSRC=$SRC/archivename/maybeSubdir/uppsrc All sources we build are contained in $UPPSRC. Download http://members.chello.at/ejg8dk49/upp-511-uppsrc-upp.mk.zip It contains a file tree of gmake-includefiles starting with dir "uppsrc" - - extract this tree over $UPPSRC. Download my gmake-based TheIDE-build-replacement including build-cfg files for mingw, vc and cygwin (linux would use an adapted cygwin build-cfg file): http://members.chello.at/ejg8dk49/themake-2006.02.21.zip Decide for a build directory: DST=... >From themake-2006.02.21.zip, extract (and adapt some of) the following files >into $DST: themake.mk My makefile containing TheIDE's build logic (no changes necessary) themake-dbg.mk same, + many traces (no changes necessary) themake.bat Script to use themake.mk inside cmd.exe, for vc and mingw builds. Adapt it so that it finds your (-j - enabled) gmake381b4 All arguments are copied to the contained gmake381b4 - call. themake-dbg.bat Like themake.bat, but using themake-dbg.mk. themake.sh Like themake.bat, but for use inside unix shell + unix-path'ed build tools themake-dbg.sh Like themake.sh, but using themake-dbg.mk. upp.var.mk Contains the DOS and UNIX path to our sources ("UPP packages") - adapt it. It binds $DST to a list of source-tree's. All other build info resides in $DST. cyg.cfg.mk Build commands for "unix-gcc" inside unix shell under cygwin (no changes necessary) mingw.cfg.mk Build commands for "dos-gcc" inside cmd.exe - must adapt "MINGW_PFX := C:/mingw/bin/" (MSC_PFX would be needed to use MS' [M]IDL/[D]COM SDK tools) vc.cfg.mk Build commands for msvc inside cmd.exe - must adapt MSC_PFX: MSC_PFX := ("$(subst \,/,$(VS71COMNTOOLS))vsvars32.bat" > nul) && # The *.cfg.mk's especially contain release/debug defaults (-O2, ...) The *.cfg.mk's are intended to be "user specific" (independent of DST and SRC) upp.override.mk Any additional build overrides to customize the builds performed for DST. My shipped verision may contain a few paths to be adapted. --- Build instructions: Adapt the files in $DST as explained. Open cmd.exe cd $DST (btw, the variables DST and SRC are not used by themake, only in this text) Dont forget to clean whenever necessary, using same options as for build: themake.bat cfG=vc pkG=ide upp.linkmode=1 clean themake.bat cfG=mingw pkG=ide upp.linkmode=1 clean themake.bat cfG=cyg pkG=ide upp.linkmode=1 clean themake.bat cfG=mycfg pkG=ide upp.linkmode=1 clean Serial build using "mode 1" ("blitz") (this mode is also themake's builtin default): themake.bat cfG=vc pkG=ide upp.linkmode=1 upp.blitz=1 Parallel build (need -j - patched gmake): set gmake-j=-j 2 themake.bat cfG=vc pkG=ide upp.linkmode=1 upp.blitz=1 set gmake-j= Unlimited parallel build (need also my patches or equivalent patches): set gmake-j= themake.bat cfG=vc pkG=ide upp.linkmode=1 upp.blitz=1 -j (this build consumes ~800MB memory) Using build commands from mingw.cfg.mk, parallel: set gmake-j=-j 2 themake.bat cfG=mingw pkG=ide upp.linkmode=1 upp.blitz=1 set gmake-j= Let your harddisk sound like a machine gun: set gmake-j=-j 64 themake.bat cfG=mingw pkG=ide upp.linkmode=1 upp.blitz=1 set gmake-j= "upp.blitz=1" would disable the "blitz"-compilation: "Blitz" means to compile all C[++] files of a pkg like one concatenated file. "Blitz" can be disabled also on pkg and on file-base, see shipped version ofr upp.override.mk. "Blitz" speeds up build times in my gcc344/vc tests by factor 2 - 2.5. "Blitz" makes GCC consume some 100 MB of RAM - "blitz"-compiling 7 files maybe consumes memory of 7 compiles at once ? Hence whithout blitz, much more instances of GCC can run concurrently. USING CYGWIN (-> cyg.cfg.mk): e.g. using gmake -j 3: themake.sh cfG=cyg pkG=ide -j 3 B U T: this will probably fail, cause with upp-511, upp/Core uses xxx64 - functions which are not availablee in my cygwin installation. Hence only some external plugins from UPPSRC will build successfully. (curiously enough, "-j 3" in the command above lets this external plugins build (successfully) very early). Even once the mentioned cygwin-xxx64 problems are solved, usually some bugs in upp srcs and cfg-files (pkg-dir/pkgname.upp) would need to be fixed - this maybe also applies to other unix/gcc builds. Linux builds (in theory, but I didnt try it): cd $DST cp cyg.cfg.mk mylinux.cfg.mk Now remove any w32/cygwin-specific GCC-options from mylinux.cfg.mk Generally grep for {32 win cyg linux unix mingw} in all used $DST/*.mk. Now build (under linux, in unix shell, what else): themake.sh cfG=mylinux pkG=ide -j 3 Generally for problems with GCC builds: Maybe need to adapt LIBRARY_PATH and CPATH in yourgcc.cfg.mk, or other options. 1 minute left today on my watch :-) Best Regards, Markus. _______________________________________________ Make-w32 mailing list [email protected] http://lists.gnu.org/mailman/listinfo/make-w32
