Add stub GNU makefile

svn path=/branches/xmlbuildsystem/; revision=13506
This commit is contained in:
Casper Hornstrup 2005-02-12 15:11:48 +00:00
parent 760ebcb3e3
commit 07a8c86438
10 changed files with 202 additions and 1391 deletions

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,4 @@
<module name="kernel32" type="win32dll">
<dependency>wmc</dependency>
<importlibrary definition="kernel32.def" />
<include base="kernel32">.</include>
<include base="kernel32">include</include>
@ -12,15 +11,6 @@
<linkerflag>-lgcc</linkerflag>
<linkerflag>-nostartfiles</linkerflag>
<linkerflag>-nostdlib</linkerflag>
<invoke module="wmc">
<input>
<inputfile>kernel32.mc</inputfile>
</input>
<output>
<outputfile switches="-H">../../include/reactos/errcodes.h</outputfile>
<outputfile switches="-o">errcodes.rc</outputfile>
</output>
</invoke>
<directory name="debug">
<file>break.c</file>
<file>debugger.c</file>
@ -119,4 +109,5 @@
<file>tls.c</file>
</directory>
<file>kernel32.rc</file>
</module>

View file

@ -1,8 +1,6 @@
<module name="ntoskrnl" type="kernel">
<importlibrary definition="ntoskrnl.def" />
<dependency>buildno</dependency>
<dependency>genntdll</dependency>
<dependency>wmc</dependency>
<define name="_SEH_NO_NATIVE_NLG" />
<define name="_DISABLE_TIDENTS" />
<define name="__NTOSKRNL__" />
@ -16,16 +14,6 @@
<library>rosrtl</library>
<library>rtl</library>
<library>string</library>
<invoke module="wmc">
<input>
<inputfile>ntoskrnl.mc</inputfile>
</input>
<output>
<outputfile switches="-H">../include/reactos/bugcodes.h</outputfile>
<outputfile switches="-o">bugcodes.rc</outputfile>
</output>
</invoke>
<directory name="ke">
<if property="ARCH" value="i386">
<directory name="i386">

View file

@ -1,172 +1,57 @@
PATH_TO_TOP = ..
RMKDIR_BASE = tools
include $(PATH_TO_TOP)/rules.mak
RMKDIR_TARGET = \
$(ROS_INTERMEDIATE)$(RMKDIR_BASE)$(SEP)rmkdir$(EXEPOSTFIX)
CFLAGS += -Wall -Werror
RMKDIR_SOURCES = \
$(RMKDIR_BASE)$(SEP)rmkdir.c
TOOLS = \
buildno$(EXE_POSTFIX) \
regtests$(EXE_POSTFIX) \
rcopy$(EXE_POSTFIX) \
rdel$(EXE_POSTFIX) \
rline$(EXE_POSTFIX) \
rmkdir$(EXE_POSTFIX) \
rrmdir$(EXE_POSTFIX) \
rsym$(EXE_POSTFIX) \
rtouch$(EXE_POSTFIX) \
mkflpimg$(EXE_POSTFIX) \
depends$(EXE_POSTFIX)
RMKDIR_OBJECTS = \
$(RMKDIR_SOURCES:.c=.o)
CLEAN_FILES = $(TOOLS)
RMKDIR_HOST_CXXFLAGS = -g -Werror -Wall
all: $(TOOLS) zlib_target wmc_target cabman_target cdmake_target mkhive_target rgenstat_target \
wine2ros_target pipetools_target rbuild_target winebuild_target bin2res_target
RMKDIR_HOST_LFLAGS = -g
buildno$(EXE_POSTFIX): buildno.c ../include/reactos/version.h
@$(HOST_CC) $(CFLAGS) -o buildno$(EXE_POSTFIX) buildno.c
@$(EXE_PREFIX)buildno$(EXE_POSTFIX)
$(RMKDIR_TARGET): $(RMKDIR_OBJECTS)
${host_gcc} $(RMKDIR_OBJECTS) $(RMKDIR_HOST_LFLAGS) -o $(RMKDIR_TARGET)
regtests$(EXE_POSTFIX): regtests.c
@$(HOST_CC) $(CFLAGS) -o regtests$(EXE_POSTFIX) regtests.c
$(RMKDIR_OBJECTS): %.o : %.c
${host_gcc} $(RMKDIR_HOST_CXXFLAGS) -c $< -o $@
ifeq ($(HOST),mingw32-linux)
rcopy$(EXE_POSTFIX): rcopy.c
@$(HOST_CC) $(CFLAGS) -DUNIX_PATHS rcopy.c -o rcopy$(EXE_POSTFIX)
endif
ifeq ($(HOST),mingw32-windows)
rcopy$(EXE_POSTFIX): rcopy.c
@$(HOST_CC) $(CFLAGS) -DDOS_PATHS rcopy.c -o rcopy$(EXE_POSTFIX)
endif
.PHONY: rmkdir
rdel$(EXE_POSTFIX): rdel.c
@$(HOST_CC) $(CFLAGS) rdel.c -o rdel$(EXE_POSTFIX)
ifeq ($(HOST),mingw32-linux)
rline$(EXE_POSTFIX): rline.c
@$(HOST_CC) $(CFLAGS) -DUNIX_PATHS rline.c -o rline$(EXE_POSTFIX)
endif
ifeq ($(HOST),mingw32-windows)
rline$(EXE_POSTFIX): rmkdir.c
@$(HOST_CC) $(CFLAGS) -DDOS_PATHS rline.c -o rline$(EXE_POSTFIX)
endif
ifeq ($(HOST),mingw32-linux)
rmkdir$(EXE_POSTFIX): rmkdir.c
@$(HOST_CC) $(CFLAGS) -DUNIX_PATHS rmkdir.c -o rmkdir$(EXE_POSTFIX)
endif
ifeq ($(HOST),mingw32-windows)
rmkdir$(EXE_POSTFIX): rmkdir.c
@$(HOST_CC) $(CFLAGS) -DDOS_PATHS rmkdir.c -o rmkdir$(EXE_POSTFIX)
endif
ifeq ($(HOST),mingw32-linux)
rrmdir$(EXE_POSTFIX): rrmdir.c
@$(HOST_CC) $(CFLAGS) -DUNIX_PATHS rrmdir.c -o rrmdir$(EXE_POSTFIX)
endif
ifeq ($(HOST),mingw32-windows)
rrmdir$(EXE_POSTFIX): rrmdir.c
@$(HOST_CC) $(CFLAGS) -DDOS_PATHS rrmdir.c -o rrmdir$(EXE_POSTFIX)
endif
ifeq ($(HOST),mingw32-linux)
rsym$(EXE_POSTFIX): rsym.c
@$(HOST_CC) $(CFLAGS) -DUNIX_PATHS rsym.c -o rsym$(EXE_POSTFIX)
endif
ifeq ($(HOST),mingw32-windows)
rsym$(EXE_POSTFIX): rsym.c
@$(HOST_CC) $(CFLAGS) -DDOS_PATHS rsym.c -o rsym$(EXE_POSTFIX)
endif
ifeq ($(HOST),mingw32-linux)
rtouch$(EXE_POSTFIX): rtouch.c
@$(HOST_CC) $(CFLAGS) -DUNIX_PATHS rtouch.c -o rtouch$(EXE_POSTFIX)
endif
ifeq ($(HOST),mingw32-windows)
rtouch$(EXE_POSTFIX): rtouch.c
@$(HOST_CC) $(CFLAGS) -DDOS_PATHS rtouch.c -o rtouch$(EXE_POSTFIX)
endif
ifeq ($(HOST),mingw32-linux)
mkflpimg$(EXE_POSTFIX): mkflpimg.c
@$(HOST_CC) $(CFLAGS) -DUNIX_PATHS mkflpimg.c -o mkflpimg$(EXE_POSTFIX)
endif
ifeq ($(HOST),mingw32-windows)
mkflpimg$(EXE_POSTFIX): mkflpimg.c
@$(HOST_CC) $(CFLAGS) -DDOS_PATHS mkflpimg.c -o mkflpimg$(EXE_POSTFIX)
endif
depends$(EXE_POSTFIX): depends.c
@$(HOST_CC) $(CFLAGS) depends.c -o depends$(EXE_POSTFIX)
zlib_target:
$(MAKE) --silent -C ../lib/zlib -f Makefile.host
wmc_target:
$(MAKE) --silent -C wmc wmc$(EXE_POSTFIX)
cabman_target:
$(MAKE) --silent -C cabman cabman$(EXE_POSTFIX)
cdmake_target:
$(MAKE) --silent -C cdmake cdmake$(EXE_POSTFIX)
mkhive_target:
$(MAKE) --silent -C mkhive mkhive$(EXE_POSTFIX)
rgenstat_target:
$(MAKE) --silent -C rgenstat rgenstat$(EXE_POSTFIX)
wine2ros_target:
$(MAKE) --silent -C wine2ros wine2ros$(EXE_POSTFIX)
pipetools_target:
ifeq ($(HOST),mingw32-windows)
$(MAKE) --silent -C pipetools
endif
rbuild_target:
$(MAKE) --silent -C rbuild rbuild$(EXE_POSTFIX)
winebuild_target:
$(MAKE) --silent -C winebuild winebuild$(EXE_POSTFIX)
bin2res_target:
$(MAKE) --silent -C bin2res bin2res$(EXE_POSTFIX)
.PHONY: wmc_target cdmake_target mkhive_target rgenstat_target pipetools_target rbuild_target
rmkdir: $(RMKDIR_TARGET)
-
ifeq ($(HOST),mingw32-linux)
clean:
$(MAKE) --silent -C cabman clean
$(MAKE) --silent -C cdmake clean
$(MAKE) --silent -C mkhive clean
$(MAKE) --silent -C wmc clean
$(MAKE) --silent -C rgenstat clean
$(MAKE) --silent -C wine2ros clean
$(MAKE) --silent -C rbuild clean
$(MAKE) --silent -C winebuild clean
$(MAKE) --silent -C bin2res clean
$(MAKE) --silent -C ../lib/zlib -f Makefile.host clean
@rm ../include/reactos/buildno.h
@rm mkconfig
@rm $(TOOLS)
endif
ifeq ($(HOST),mingw32-windows)
clean:
$(MAKE) --silent -C cabman clean
$(MAKE) --silent -C cdmake clean
$(MAKE) --silent -C mkhive clean
$(MAKE) --silent -C wmc clean
$(MAKE) --silent -C rgenstat clean
$(MAKE) --silent -C pipetools clean
$(MAKE) --silent -C rbuild clean
$(MAKE) --silent -C wine2ros clean
$(MAKE) --silent -C winebuild clean
$(MAKE) --silent -C bin2res clean
$(MAKE) --silent -C ../lib/zlib -f Makefile.host clean
-@del ..\include\reactos\buildno.h
-@del *$(EXE_POSTFIX)
endif
.PHONY: all clean
BUILDNO_BASE = tools
BUILDNO_TARGET = \
$(ROS_INTERMEDIATE)$(BUILDNO_BASE)$(SEP)buildno$(EXEPOSTFIX)
BUILDNO_SOURCES = \
$(BUILDNO_BASE)$(SEP)buildno.c
BUILDNO_OBJECTS = \
$(BUILDNO_SOURCES:.c=.o)
BUILDNO_HOST_CXXFLAGS = -g -Werror -Wall
BUILDNO_HOST_LFLAGS = -g
$(BUILDNO_TARGET): $(BUILDNO_OBJECTS)
${host_gcc} $(BUILDNO_OBJECTS) $(BUILDNO_HOST_LFLAGS) -o $(BUILDNO_TARGET)
$(BUILDNO_OBJECTS): %.o : %.c
${host_gcc} $(BUILDNO_HOST_CXXFLAGS) -c $< -o $@
include$(SEP)reactos$(SEP)buildno.h: $(BUILDNO_TARGET)
$(EXEPREFIX)$(BUILDNO_TARGET) include$(SEP)reactos$(SEP)buildno.h
.PHONY: buildno
buildno: $(BUILDNO_TARGET)
include tools/wmc/makefile

View file

@ -162,6 +162,9 @@ MingwBackend::GenerateProjectLFLAGS () const
void
MingwBackend::GenerateGlobalVariables () const
{
fprintf ( fMakefile, "EXEPREFIX = " EXEPREFIX "\n" );
fprintf ( fMakefile, "EXEPOSTFIX = " EXEPOSTFIX "\n" );
fprintf ( fMakefile, "SEP = " SSEP "$(EMPTY_VAR)\n" );
fprintf ( fMakefile, "host_gcc = gcc\n" );
fprintf ( fMakefile, "host_gpp = g++\n" );
fprintf ( fMakefile, "host_ld = ld\n" );

View file

@ -1,82 +1,107 @@
PATH_TO_TOP = ../..
RBUILD_BASE = tools$(SEP)rbuild
TARGET = rbuild$(EXE_POSTFIX)
RBUILD_TARGET = \
$(ROS_INTERMEDIATE)$(RBUILD_BASE)$(SEP)rbuild$(EXEPOSTFIX)
all: $(TARGET)
RBUILD_TEST_TARGET = \
$(ROS_INTERMEDIATE)$(RBUILD_BASE)$(SEP)rbuild_test$(EXEPOSTFIX)
BACKEND_MINGW_BASE_OBJECTS = \
backend/mingw/mingw.o \
backend/mingw/modulehandler.o
RBUILD_BACKEND_MINGW_BASE_SOURCES = \
backend$(SEP)mingw$(SEP)mingw.cpp \
backend$(SEP)mingw$(SEP)modulehandler.cpp
BACKEND_DEVCPP_BASE_OBJECTS = backend/devcpp/devcpp.o
BACKEND_BASE_OBJECTS = \
$(BACKEND_MINGW_BASE_OBJECTS) \
$(BACKEND_DEVCPP_BASE_OBJECTS) \
backend/backend.o
RBUILD_BACKEND_DEVCPP_BASE_SOURCES = \
backend$(SEP)devcpp$(SEP)devcpp.cpp
BASE_OBJECTS = \
$(BACKEND_BASE_OBJECTS) \
automaticdependency.o \
compilerflag.o \
define.o \
exception.o \
include.o \
linkerflag.o \
module.o \
project.o \
ssprintf.o \
XML.o
RBUILD_BACKEND_BASE_SOURCES = \
$(RBUILD_BACKEND_MINGW_BASE_SOURCES) \
$(RBUILD_BACKEND_DEVCPP_BASE_SOURCES) \
backend$(SEP)backend.cpp
OBJECTS = $(BASE_OBJECTS) rbuild.o
RBUILD_BASE_SOURCES = \
$(RBUILD_BACKEND_BASE_SOURCES) \
automaticdependency.cpp \
compilerflag.cpp \
define.cpp \
exception.cpp \
include.cpp \
linkerflag.cpp \
module.cpp \
project.cpp \
ssprintf.cpp \
XML.cpp
TESTS = \
tests/definetest.o \
tests/functiontest.o \
tests/iftest.o \
tests/includetest.o \
tests/invoketest.o \
tests/linkerflagtest.o \
tests/moduletest.o \
tests/projecttest.o \
tests/sourcefiletest.o
RBUILD_COMMON_SOURCES = \
$(addprefix $(RBUILD_BASE)$(SEP), $(RBUILD_BASE_SOURCES)) \
TEST_OBJECTS = $(BASE_OBJECTS) $(TESTS) tests/alltests.o
RBUILD_SPECIAL_SOURCES = \
$(RBUILD_BASE)$(SEP)rbuild.cpp
HOST_CXXFLAGS = -g -I. -Werror -Wall
RBUILD_SOURCES = \
$(RBUILD_COMMON_SOURCES) \
$(RBUILD_SPECIAL_SOURCES)
HOST_LFLAGS = -g
RBUILD_COMMON_OBJECTS = \
$(addprefix $(ROS_INTERMEDIATE), $(RBUILD_COMMON_SOURCES:.cpp=.o))
rbuild$(EXE_POSTFIX): $(OBJECTS)
$(HOST_CXX) $(OBJECTS) $(HOST_LFLAGS) -o rbuild$(EXE_POSTFIX)
RBUILD_SPECIAL_OBJECTS = \
$(addprefix $(ROS_INTERMEDIATE), $(RBUILD_SPECIAL_SOURCES:.cpp=.o))
ifeq ($(HOST),"")
echo Please set HOST variable to mingw32-windows or mingw32-linux
endif
ifeq ($(HOST),mingw32-linux)
clean:
-rm -f *.o
-rm -f rbuild$(EXE_POSTFIX)
-rm -f tests/*.o
-rm -f rbuild_tests$(EXE_POSTFIX)
else
clean:
-del *.o
-del rbuild$(EXE_POSTFIX)
-del tests\*.o
-del rbuild_tests$(EXE_POSTFIX)
endif
RBUILD_OBJECTS = \
$(RBUILD_COMMON_OBJECTS) \
$(RBUILD_SPECIAL_OBJECTS)
.phony: clean
RBUILD_TESTS = \
tests$(SEP)definetest.cpp \
tests$(SEP)functiontest.cpp \
tests$(SEP)iftest.cpp \
tests$(SEP)includetest.cpp \
tests$(SEP)invoketest.cpp \
tests$(SEP)linkerflagtest.cpp \
tests$(SEP)moduletest.cpp \
tests$(SEP)projecttest.cpp \
tests$(SEP)sourcefiletest.cpp
%.o: %.cpp
$(HALFVERBOSEECHO) [CXX] $<
$(HOST_CXX) $(HOST_CXXFLAGS) -c $< -o $@
RBUILD_TEST_SPECIAL_SOURCES = \
$(addprefix $(RBUILD_BASE)$(SEP), $(RBUILD_TESTS)) \
$(RBUILD_BASE)$(SEP)tests$(SEP)alltests.cpp
test: rbuild_tests$(EXE_POSTFIX)
./$(EXE_PREFIX)rbuild_tests$(EXE_POSTFIX)
RBUILD_TEST_SOURCES = \
$(RBUILD_COMMON_SOURCES) \
$(RBUILD_TEST_SPECIAL_SOURCES)
rbuild_tests$(EXE_POSTFIX): $(TEST_OBJECTS)
$(HOST_CXX) $(TEST_OBJECTS) $(HOST_LFLAGS) -o rbuild_tests$(EXE_POSTFIX)
RBUILD_TEST_SPECIAL_OBJECTS = \
$(addprefix $(ROS_INTERMEDIATE), $(RBUILD_TEST_SPECIAL_SOURCES:.cpp=.o))
include $(PATH_TO_TOP)/rules.mak
RBUILD_TEST_OBJECTS = \
$(RBUILD_COMMON_OBJECTS) \
$(RBUILD_TEST_SPECIAL_OBJECTS)
RBUILD_HOST_CXXFLAGS = -g -I$(RBUILD_BASE) -Werror -Wall
RBUILD_HOST_LFLAGS = -g
$(RBUILD_TARGET): $(RBUILD_OBJECTS)
${host_gpp} $(RBUILD_OBJECTS) $(RBUILD_HOST_LFLAGS) -o $(RBUILD_TARGET)
$(RBUILD_COMMON_OBJECTS): %.o: %.cpp
${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
$(RBUILD_SPECIAL_OBJECTS): %.o: %.cpp
${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
.PHONY: rbuild
rbuild: $(RBUILD_TARGET)
-
$(RBUILD_TEST_TARGET): $(RBUILD_TEST_OBJECTS)
${host_gpp} $(RBUILD_TEST_OBJECTS) $(RBUILD_HOST_LFLAGS) -o $(RBUILD_TEST_TARGET)
$(RBUILD_TEST_SPECIAL_OBJECTS): %.o: %.cpp
${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
.PHONY: rbuild_test
rbuild_test: $(RBUILD_TEST_TARGET)
$(RBUILD_TEST_TARGET)

View file

@ -21,12 +21,14 @@
#include "XML.h"
#ifdef WIN32
#define EXEPREFIX ""
#define EXEPOSTFIX ".exe"
#define CSEP '\\'
#define CBAD_SEP '/'
#define SSEP "\\"
#define SBAD_SEP "/"
#else
#define EXEPREFIX "./"
#define EXEPOSTFIX ""
#define CSEP '/'
#define CBAD_SEP '\\'

View file

@ -4,21 +4,6 @@
<directory name="cabman">
<xi:include href="cabman/cabman.xml" />
</directory>
<module name="buildno" type="buildtool">
<include base="buildno">.</include>
<file>buildno.c</file>
<invoke>
<output>
<outputfile>../include/reactos/buildno.h</outputfile>
</output>
</invoke>
</module>
<directory name="wmc">
<xi:include href="wmc/wmc.xml" />
</directory>
<directory name="winebuild">
<xi:include href="winebuild/winebuild.xml" />
</directory>
<module name="rmkdir" type="buildtool">
<file>rmkdir.c</file>
</module>

View file

@ -1,58 +1,32 @@
#
# ReactOS/Wine message compiler
#
PATH_TO_TOP = ../..
WMC_BASE = tools$(SEP)wmc
TARGET=wmc$(EXE_POSTFIX)
WMC_TARGET = \
$(ROS_INTERMEDIATE)$(WMC_BASE)$(SEP)wmc$(EXEPOSTFIX)
all: $(TARGET)
WMC_SOURCES = \
$(WMC_BASE)$(SEP)getopt.c \
$(WMC_BASE)$(SEP)lang.c \
$(WMC_BASE)$(SEP)mcl.c \
$(WMC_BASE)$(SEP)utils.c \
$(WMC_BASE)$(SEP)wmc.c \
$(WMC_BASE)$(SEP)write.c \
$(WMC_BASE)$(SEP)y_tab.c \
$(WMC_BASE)$(SEP)misc.c
OBJECTS = getopt.o lang.o mcl.o utils.o wmc.o write.o y_tab.o misc.o
WMC_OBJECTS = \
$(WMC_SOURCES:.c=.o)
CLEAN_FILES = *.o wmc$(EXE_POSTFIX)
WMC_HOST_CXXFLAGS = -I$(WMC_BASE) -g -Werror -Wall
wmc$(EXE_POSTFIX): $(OBJECTS)
$(HOST_CC) $(OBJECTS) -g -o wmc$(EXE_POSTFIX)
WMC_HOST_LFLAGS = -g
HOST_CFLAGS = -I. -Werror -Wall
$(WMC_TARGET): $(WMC_OBJECTS)
${host_gcc} $(WMC_OBJECTS) $(WMC_HOST_LFLAGS) -o $(WMC_TARGET)
getopt.o: getopt.c
$(HOST_CC) $(HOST_CFLAGS) -g -c getopt.c -o getopt.o
$(WMC_OBJECTS): %.o : %.c
${host_gcc} $(WMC_HOST_CXXFLAGS) -c $< -o $@
lang.o: lang.c
$(HOST_CC) $(HOST_CFLAGS) -g -c lang.c -o lang.o
.PHONY: wmc
misc.o: misc.c
$(HOST_CC) $(HOST_CFLAGS) -g -c misc.c -o misc.o
mcl.o: mcl.c
$(HOST_CC) $(HOST_CFLAGS) -g -c mcl.c -o mcl.o
utils.o: utils.c
$(HOST_CC) $(HOST_CFLAGS) -g -c utils.c -o utils.o
wmc.o: wmc.c
$(HOST_CC) $(HOST_CFLAGS) -g -c wmc.c -o wmc.o
write.o: write.c
$(HOST_CC) $(HOST_CFLAGS) -g -c write.c -o write.o
y_tab.o: y_tab.c
$(HOST_CC) $(HOST_CFLAGS) -g -c y_tab.c -o y_tab.o
ifeq ($(HOST),mingw32-linux)
clean:
rm -f *.o
rm -f wmc$(EXE_POSTFIX)
endif
ifeq ($(HOST),mingw32-windows)
clean:
-del *.o
-del wmc$(EXE_POSTFIX)
endif
.phony: clean
include $(PATH_TO_TOP)/rules.mak
# EOF
wmc: $(WMC_TARGET)
-

View file

@ -1,11 +0,0 @@
<module name="wmc" type="buildtool">
<include base="wmc">.</include>
<file>getopt.c</file>
<file>lang.c</file>
<file>mcl.c</file>
<file>misc.c</file>
<file>utils.c</file>
<file>wmc.c</file>
<file>write.c</file>
<file>y_tab.c</file>
</module>