various win32 fixes
[p5sagit/p5-mst-13.2.git] / win32 / makefile.mk
index 39b0b10..6b544c5 100644 (file)
@@ -352,7 +352,7 @@ NOOP                = @echo
 XSUBPP         = ..\$(MINIPERL) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp \
                -C++ -prototypes
 
-CORE_SRC       =               \
+MICROCORE_SRC  =               \
                ..\av.c         \
                ..\byterun.c    \
                ..\deb.c        \
@@ -381,15 +381,15 @@ CORE_SRC  =               \
                ..\util.c
 
 .IF "$(CRYPT_SRC)" != ""
-CORE_SRC       += ..\$(CRYPT_SRC)
+MICROCORE_SRC  += ..\$(CRYPT_SRC)
 .ENDIF
 
 .IF "$(PERL_MALLOC)" == "define"
-CORE_SRC       += ..\malloc.c
+EXTRACORE_SRC  += ..\malloc.c
 .ENDIF
 
 .IF "$(OBJECT)" == ""
-CORE_SRC       += ..\perlio.c
+EXTRACORE_SRC  += ..\perlio.c
 .ENDIF
 
 WIN32_SRC      =               \
@@ -423,7 +423,7 @@ X2P_SRC             =               \
                ..\x2p\util.c   \
                ..\x2p\walk.c
 
-CORE_H         =               \
+CORE_NOCFG_H   =               \
                ..\av.h         \
                ..\byterun.h    \
                ..\bytecode.h   \
@@ -453,7 +453,6 @@ CORE_H              =               \
                ..\unixish.h    \
                ..\util.h       \
                ..\XSUB.h       \
-               .\config.h      \
                ..\EXTERN.h     \
                ..\perlvars.h   \
                ..\intrpvar.h   \
@@ -463,19 +462,18 @@ CORE_H            =               \
                .\include\sys\socket.h  \
                .\win32.h
 
-CORE_OBJ       = $(CORE_SRC:db:+$(o))
+CORE_H         = $(CORE_NOCFG_H) .\config.h
+
+MICROCORE_OBJ  = $(MICROCORE_SRC:db:+$(o))
+CORE_OBJ       = $(MICROCORE_OBJ) $(EXTRACORE_SRC:db:+$(o))
 WIN32_OBJ      = $(WIN32_SRC:db:+$(o))
-MINICORE_OBJ   = $(MINIDIR)\{$(CORE_OBJ:f) miniperlmain$(o)}
+MINICORE_OBJ   = $(MINIDIR)\{$(MICROCORE_OBJ:f) miniperlmain$(o) perlio$(o)}
 MINIWIN32_OBJ  = $(MINIDIR)\{$(WIN32_OBJ:f)}
 MINI_OBJ       = $(MINICORE_OBJ) $(MINIWIN32_OBJ)
 PERL95_OBJ     = $(PERL95_SRC:db:+$(o))
 DLL_OBJ                = $(DLL_SRC:db:+$(o))
 X2P_OBJ                = $(X2P_SRC:db:+$(o))
 
-.IF "$(OBJECT)" != ""
-MINICORE_OBJ   += $(MINIDIR)\perlio$(o)
-.ENDIF
-
 PERLDLL_OBJ    = $(CORE_OBJ)
 PERLEXE_OBJ    = perlmain$(o)
 
@@ -567,8 +565,8 @@ CFG_VARS    =                                       \
 # Top targets
 #
 
-all : $(GLOBEXE) $(MINIMOD) $(CONFIGPM) $(PERLEXE) $(PERL95EXE) $(CAPILIB) $(X2P) \
-       $(EXTENSION_DLL)
+all : .\config.h $(GLOBEXE) $(MINIMOD) $(CONFIGPM) $(PERLEXE) $(PERL95EXE) \
+       $(CAPILIB) $(X2P) $(EXTENSION_DLL)
 
 $(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
 
@@ -591,7 +589,7 @@ perlglob$(o)  : perlglob.c
 config.w32 : $(CFGSH_TMPL)
        copy $(CFGSH_TMPL) config.w32
 
-.\config.h : $(CFGH_TMPL)
+.\config.h : $(CFGH_TMPL) $(CORE_NOCFG_H)
        -del /f config.h
        copy $(CFGH_TMPL) config.h
 
@@ -634,15 +632,18 @@ $(MINIPERL) : $(MINIDIR) $(MINI_OBJ)
 $(MINIDIR) :
        if not exist "$(MINIDIR)" mkdir "$(MINIDIR)"
 
-$(MINICORE_OBJ) : $(CORE_H)
+$(MINICORE_OBJ) : $(CORE_NOCFG_H)
        $(CC) -c $(CFLAGS) $(OBJOUT_FLAG)$@ ..\$(*B).c
 
-$(MINIWIN32_OBJ) : $(CORE_H)
+$(MINIWIN32_OBJ) : $(CORE_NOCFG_H)
        $(CC) -c $(CFLAGS) $(OBJOUT_FLAG)$@ $(*B).c
 
+# 1. we don't want to rebuild miniperl.exe when config.h changes
+# 2. we don't want to rebuild miniperl.exe with non-default config.h
+$(MINI_OBJ)    : $(CORE_NOCFG_H)
+
 $(WIN32_OBJ)   : $(CORE_H)
 $(CORE_OBJ)    : $(CORE_H)
-$(MINI_OBJ)    : $(CORE_H)
 $(DLL_OBJ)     : $(CORE_H)
 $(PERL95_OBJ)  : $(CORE_H)
 $(X2P_OBJ)     : $(CORE_H)