[atkmm/atkmm-2-28] NMake Makefiles: Add rules to generate sources



commit 6920eb213cb8f80127e365e387b4a40b2581b71e
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Tue Mar 31 18:16:44 2020 +0800

    NMake Makefiles: Add rules to generate sources
    
    This allows one to be able to build directly from a GIT checkout, after
    first running the prep-git-build target, by running gmmproc from an
    installation of glibmm.
    
    Note that in order to perform such a build, one will need *nix/GNU tools
    such as common *nix commands 'cp' and 'rm' etc, along with PERL (with
    XML::Parser) and the GNU m4 tool.

 MSVC_NMake/build-rules-msvc.mak  | 17 +++++++++++++++++
 MSVC_NMake/config-msvc.mak       |  5 +++++
 MSVC_NMake/create-lists-msvc.mak |  9 +++++++++
 MSVC_NMake/generate-msvc.mak     |  9 +++++++--
 4 files changed, 38 insertions(+), 2 deletions(-)
---
diff --git a/MSVC_NMake/build-rules-msvc.mak b/MSVC_NMake/build-rules-msvc.mak
index 85c43f1..0c87c31 100644
--- a/MSVC_NMake/build-rules-msvc.mak
+++ b/MSVC_NMake/build-rules-msvc.mak
@@ -13,11 +13,22 @@
 #      $(CC)|$(CXX) $(cflags) /Fo$(destdir) /c @<<
 # $<
 # <<
+{vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\}.cc{vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\}.obj::
+       $(CXX) $(ATKMM_CFLAGS) $(CFLAGS_NOGL) /Fovs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\ 
/Fdvs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\ /c @<<
+$<
+<<
+
 {..\atk\atkmm\}.cc{vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\}.obj::
        $(CXX) $(ATKMM_CFLAGS) $(CFLAGS_NOGL) /Fovs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\ 
/Fdvs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\ /c @<<
 $<
 <<
 
+{..\atk\src\}.ccg{vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\}.obj:
+       @if not exist $(@D)\private\ $(MAKE) /f Makefile.vc CFG=$(CFG) $(@D)\private
+       @for %%s in ($(<D)\*.ccg) do @if not exist ..\atk\atkmm\%%~ns.cc if not exist $(@D)\%%~ns.cc $(PERL) 
-- $(GMMPROC_DIR)/gmmproc -I ../codegen/m4 --defs $(<D:\=/) %%~ns $(<D:\=/) $(@D)
+       @if exist $(@D)\$(<B).cc $(CXX) $(ATKMM_CFLAGS) $(CFLAGS_NOGL) /Fo$(@D)\ /Fd$(@D)\ /c $(@D)\$(<B).cc
+       @if exist ..\atk\atkmm\$(<B).cc $(CXX) $(ATKMM_CFLAGS) $(CFLAGS_NOGL) /Fo$(@D)\ /Fd$(@D)\ /c 
..\atk\atkmm\$(<B).cc
+
 {.\atkmm\}.rc{vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\}.res:
        rc /fo$@ $<
 
@@ -61,7 +72,13 @@ clean:
        @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\*.pdb
        @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\*.res
        @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\*.obj
+       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\private\*.h
+       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\*.h
+       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\*.cc
        @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\gendef\*.pdb
        @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\gendef\*.obj
+       @-rd vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\private
        @-rd vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm
        @-rd vs$(PDBVER)\$(CFG)\$(PLAT)\gendef
+
+.SUFFIXES: .cc .h .ccg .hg .obj
diff --git a/MSVC_NMake/config-msvc.mak b/MSVC_NMake/config-msvc.mak
index 04b9130..d0858f8 100644
--- a/MSVC_NMake/config-msvc.mak
+++ b/MSVC_NMake/config-msvc.mak
@@ -22,7 +22,12 @@ DEBUG_SUFFIX = -d
 DEBUG_SUFFIX =
 !endif
 
+!ifndef GMMPROC_DIR
+GMMPROC_DIR=$(PREFIX)\share\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\proc
+!endif
+
 ATKMM_BASE_CFLAGS =                    \
+       /Ivs$(PDBVER)\$(CFG)\$(PLAT)    \
        /I..\atk /I.\atkmm              \
        /wd4530 /EHsc   \
        /FImsvc_recommended_pragmas.h
diff --git a/MSVC_NMake/create-lists-msvc.mak b/MSVC_NMake/create-lists-msvc.mak
index f609914..2b76314 100644
--- a/MSVC_NMake/create-lists-msvc.mak
+++ b/MSVC_NMake/create-lists-msvc.mak
@@ -54,6 +54,15 @@ atkmm_files_extra_ph_int = $(atkmm_files_extra_ph:/=\)
 !if [call create-lists.bat footer atkmm.mak]
 !endif
 
+!if [call create-lists.bat header atkmm.mak atkmm_real_hg]
+!endif
+
+!if [for %c in ($(atkmm_files_hg)) do @call create-lists.bat file atkmm.mak ..\atk\src\%c]
+!endif
+
+!if [call create-lists.bat footer atkmm.mak]
+!endif
+
 !include atkmm.mak
 
 !if [del /f /q atkmm.mak]
diff --git a/MSVC_NMake/generate-msvc.mak b/MSVC_NMake/generate-msvc.mak
index fe20511..a0b5aac 100644
--- a/MSVC_NMake/generate-msvc.mak
+++ b/MSVC_NMake/generate-msvc.mak
@@ -5,13 +5,18 @@
 
 # Create the build directories
 vs$(PDBVER)\$(CFG)\$(PLAT)\gendef      \
-vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm:
-       @-mkdir $@
+vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm       \
+vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\private:
+       @-md $@
 
 # Generate .def files
 vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\atkmm.def: $(GENDEF) vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm $(atkmm_OBJS)
        vs$(PDBVER)\$(CFG)\$(PLAT)\gendef.exe $@ $(ATKMM_LIBNAME) vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\*.obj
 
+# Generate wrap_init.cc files
+vs$(PDBVER)\$(CFG)\$(PLAT)\atkmm\wrap_init.cc: $(atkmm_real_hg)
+       @if not exist ..\atk\atkmm\wrap_init.cc $(PERL) -- "$(GMMPROC_DIR)/generate_wrap_init.pl" 
--namespace=Atk --parent_dir=atkmm $(atkmm_real_hg:\=/)>$@
+
 # Generate pre-generated resources and configuration headers (builds from GIT)
 prep-git-build: pkg-ver.mak
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]