summaryrefslogtreecommitdiff
path: root/win32/build-rules-msvc.mak
diff options
context:
space:
mode:
Diffstat (limited to 'win32/build-rules-msvc.mak')
-rw-r--r--win32/build-rules-msvc.mak167
1 files changed, 167 insertions, 0 deletions
diff --git a/win32/build-rules-msvc.mak b/win32/build-rules-msvc.mak
new file mode 100644
index 000000000..179c6fdca
--- /dev/null
+++ b/win32/build-rules-msvc.mak
@@ -0,0 +1,167 @@
+# NMake Makefile portion for compilation rules
+# Items in here should not need to be edited unless
+# one is maintaining the NMake build files. The format
+# of NMake Makefiles here are different from the GNU
+# Makefiles. Please see the comments about these formats.
+
+# Inference rules for compiling the .obj files.
+# Used for libs and programs with more than a single source file.
+# Format is as follows
+# (all dirs must have a trailing '\'):
+#
+# {$(srcdir)}.$(srcext){$(destdir)}.obj::
+# $(CC)|$(CXX) $(cflags) /Fo$(destdir) /c @<<
+# $<
+# <<
+
+!ifndef REGEN_C_SOURCES
+{..\gee\}.c{$(OUTDIR)\gee\}.obj::
+ @if not exist $(OUTDIR)\gee\ md $(OUTDIR)\gee
+ @if not exist config.h copy config.h.win32 config.h
+ $(CC) $(LIBVALA_CFLAGS) $(LIBVALA_BUILD_INCLUDES) /Fo$(OUTDIR)\gee\ /Fd$(OUTDIR)\gee\ /c @<<
+$<
+<<
+
+{..\vala\}.c{$(OUTDIR)\vala\}.obj::
+ @if not exist $(OUTDIR)\vala\ md $(OUTDIR)\vala
+ @if not exist config.h copy config.h.win32 config.h
+ $(CC) $(LIBVALA_CFLAGS) $(LIBVALA_BUILD_INCLUDES) /Fo$(OUTDIR)\vala\ /Fd$(OUTDIR)\vala\ /c @<<
+$<
+<<
+
+{..\ccode\}.c{$(OUTDIR)\ccode\}.obj::
+ @if not exist $(OUTDIR)\ccode\ md $(OUTDIR)\ccode
+ $(CC) $(LIBVALA_CCODE_CFLAGS) $(LIBVALA_BUILD_CCODE_INCLUDES) /Fo$(OUTDIR)\ccode\ /Fd$(OUTDIR)\ccode\ /c @<<
+$<
+<<
+
+{..\codegen\}.c{$(OUTDIR)\codegen\}.obj::
+ @if not exist $(OUTDIR)\codegen\ md $(OUTDIR)\codegen
+ $(CC) $(LIBVALA_CODEGEN_CFLAGS) $(LIBVALA_BUILD_CODEGEN_INCLUDES) /Fo$(OUTDIR)\codegen\ /Fd$(OUTDIR)\codegen\ /c @<<
+$<
+<<
+
+{..\compiler\}.c{$(OUTDIR)\compiler\}.obj::
+ @if not exist $(OUTDIR)\compiler\ md $(OUTDIR)\compiler
+ $(CC) $(VALAC_CFLAGS) $(VALA_FULL_INCLUDES) /Fo$(OUTDIR)\compiler\ /Fd$(OUTDIR)\compiler\ /c @<<
+$<
+<<
+
+{..\vapigen\}.c{$(OUTDIR)\vapigen\}.obj::
+ @if not exist $(OUTDIR)\vapigen\ md $(OUTDIR)\vapigen
+ $(CC) $(VAPIGEN_CFLAGS) $(VAPIGEN_INCLUDES) /Fo$(OUTDIR)\vapigen\ /Fd$(OUTDIR)\vapigen\ /c @<<
+$<
+<<
+
+!else
+
+{$(OUTDIR)\gee\}.c{$(OUTDIR)\gee\}.obj::
+ @if not exist config.h copy config.h.win32 config.h
+ $(CC) $(LIBVALA_CFLAGS) $(LIBVALA_BUILD_INCLUDES) /Fo$(OUTDIR)\gee\ /Fd$(OUTDIR)\gee\ /c @<<
+$<
+<<
+
+{$(OUTDIR)\vala\}.c{$(OUTDIR)\vala\}.obj::
+ @if not exist config.h copy config.h.win32 config.h
+ $(CC) $(LIBVALA_CFLAGS) $(LIBVALA_BUILD_INCLUDES) /Fo$(OUTDIR)\vala\ /Fd$(OUTDIR)\vala\ /c @<<
+$<
+<<
+
+{$(OUTDIR)\ccode\}.c{$(OUTDIR)\ccode\}.obj::
+ $(CC) $(LIBVALA_CCODE_CFLAGS) $(LIBVALA_BUILD_CCODE_INCLUDES) /Fo$(OUTDIR)\ccode\ /Fd$(OUTDIR)\ccode\ /c @<<
+$<
+<<
+
+{$(OUTDIR)\codegen\}.c{$(OUTDIR)\codegen\}.obj::
+ $(CC) $(LIBVALA_CODEGEN_CFLAGS) $(LIBVALA_BUILD_CODEGEN_INCLUDES) /Fo$(OUTDIR)\codegen\ /Fd$(OUTDIR)\codegen\ /c @<<
+$<
+<<
+
+{$(OUTDIR)\compiler\}.c{$(OUTDIR)\compiler\}.obj::
+ $(CC) $(VALAC_CFLAGS) $(VALA_FULL_INCLUDES) /Fo$(OUTDIR)\compiler\ /Fd$(OUTDIR)\compiler\ /c @<<
+$<
+<<
+
+{$(OUTDIR)\gobject-introspection\}.c{$(OUTDIR)\gobject-introspection\}.obj::
+ $(CC) $(BASE_CFLAGS) $(GOBJECT_INTROSPECTION_BUILD_INCLUDES) /Fo$(OUTDIR)\gobject-introspection\ /Fd$(OUTDIR)\gobject-introspection\ /c @<<
+$<
+<<
+
+{$(OUTDIR)\vapigen\}.c{$(OUTDIR)\vapigen\}.obj::
+ $(CC) $(VAPIGEN_CFLAGS) $(VAPIGEN_INCLUDES) /Fo$(OUTDIR)\vapigen\ /Fd$(OUTDIR)\vapigen\ /c @<<
+$<
+<<
+!endif
+
+{..\gobject-introspection\}.c{$(OUTDIR)\gobject-introspection\}.obj::
+ @if not exist $(OUTDIR)\gobject-introspection\ md $(OUTDIR)\gobject-introspection
+ $(CC) $(BASE_CFLAGS) $(GOBJECT_INTROSPECTION_BUILD_INCLUDES) /Fo$(OUTDIR)\gobject-introspection\ /Fd$(OUTDIR)\gobject-introspection\ /c @<<
+$<
+<<
+
+# Rules for building .lib files
+$(VALA_LIB): $(VALA_DLL)
+$(VALA_CODEGEN_LIB): $(VALA_CODEGEN_DLL)
+
+# Rules for linking DLLs
+# Format is as follows (the mt command is needed for MSVC 2005/2008 builds):
+# $(dll_name_with_path): $(dependent_libs_files_objects_and_items)
+# link /DLL [$(linker_flags)] [$(dependent_libs)] [/def:$(def_file_if_used)] [/implib:$(lib_name_if_needed)] -out:$@ @<<
+# $(dependent_objects)
+# <<
+# @-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
+$(VALA_DLL): $(vala_libgee_objs) $(vala_libvala_objs)
+$(VALA_CODEGEN_DLL): $(VALA_LIB) $(vala_libccode_objs) $(vala_libcodegen_objs)
+
+$(VALA_CODEGEN_DLL) $(VALA_CCODE_DLL) $(VALA_DLL):
+ link /DLL $(LDFLAGS) \
+ $(BASE_DEP_LIBS) \
+ /out:$@ @<<
+$**
+<<
+ @-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
+
+# Rules for linking Executables
+# Format is as follows (the mt command is needed for MSVC 2005/2008 builds):
+# $(dll_name_with_path): $(dependent_libs_files_objects_and_items)
+# link [$(linker_flags)] [$(dependent_libs)] -out:$@ @<<
+# $(dependent_objects)
+# <<
+# @-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
+
+$(VALAC_EXE): $(VALA_CODEGEN_LIB) $(VALA_LIB) $(vala_libccode_objs) $(compiler_objs)
+ link $(LDFLAGS) \
+ $(BASE_DEP_LIBS) \
+ /delayload:valaccodegen.dll delayimp.lib \
+ /out:$@ @<<
+$**
+<<
+ @-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
+
+
+$(GEN_INTROSPECT): $(gen_introspection_objs) $(gidl_objs)
+$(VAPIGEN): $(vapigen_objs) $(gidl_objs) $(vala_libccode_objs) $(VALA_LIB)
+$(VAPICHECK): $(vapicheck_objs) $(gidl_objs) $(vala_libccode_objs) $(VALA_LIB)
+
+$(GEN_INTROSPECT) $(VAPIGEN) $(VAPICHECK):
+ link $(LDFLAGS) \
+ $(BASE_DEP_LIBS) \
+ /out:$@ @<<
+$**
+<<
+ @-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
+
+clean:
+ @-del /f /q $(OUTDIR)\*.dll.manifest
+ @-del /f /q $(OUTDIR)\*.dll
+ @-del /f /q $(OUTDIR)\*.exe.manifest
+ @-del /f /q $(OUTDIR)\*.exe
+ @-del /f /q $(OUTDIR)\*.pdb
+ @-del /f /q $(OUTDIR)\*.ilk
+ @-del /f /q $(OUTDIR)\*.exp
+ @-del /f /q $(OUTDIR)\*.lib
+ @-if not "$(REGEN_C_SOURCES)" == "" del /f /q $(OUTDIR)\libvala$(LIB_SUFFIX).vapi
+ @-for %d in (vapigen gobject-introspection compiler codegen ccode vala gee) do @for %x in (obj pdb) do @del $(OUTDIR)\%d\*.%x
+ @-if not "$(REGEN_C_SOURCES)" == "" for %d in (vapigen gobject-introspection compiler codegen ccode vala gee) do @for %x in (c h vapi) do @del $(OUTDIR)\%d\*.%x
+ @-for %d in (vapigen gobject-introspection compiler codegen ccode vala gee) do @rd $(OUTDIR)\%d
+ @-del /s /q config.h