XSUBPP = ..\$(MINIPERL) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp \
-C++ -prototypes
-CORE_SRC = \
+MICROCORE_SRC = \
..\av.c \
..\byterun.c \
..\deb.c \
..\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 = \
..\x2p\util.c \
..\x2p\walk.c
-CORE_H = \
+CORE_NOCFG_H = \
..\av.h \
..\byterun.h \
..\bytecode.h \
..\unixish.h \
..\util.h \
..\XSUB.h \
- .\config.h \
..\EXTERN.h \
..\perlvars.h \
..\intrpvar.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)
# 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
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
$(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)