Blame msvc/build-rules-msvc.mak

Packit Service dcb6c2
# NMake Makefile portion for compilation rules
Packit Service dcb6c2
# Items in here should not need to be edited unless
Packit Service dcb6c2
# one is maintaining the NMake build files.  The format
Packit Service dcb6c2
# of NMake Makefiles here are different from the GNU
Packit Service dcb6c2
# Makefiles.  Please see the comments about these formats.
Packit Service dcb6c2
Packit Service dcb6c2
# Inference rules for compiling the .obj files.
Packit Service dcb6c2
# Used for libs and programs with more than a single source file.
Packit Service dcb6c2
# Format is as follows
Packit Service dcb6c2
# (all dirs must have a trailing '\'):
Packit Service dcb6c2
#
Packit Service dcb6c2
# {$(srcdir)}.$(srcext){$(destdir)}.obj::
Packit Service dcb6c2
# 	$(CC)|$(CXX) $(cflags) /Fo$(destdir) /c @<<
Packit Service dcb6c2
# $<
Packit Service dcb6c2
# <<
Packit Service dcb6c2
Packit Service dcb6c2
{..\src\}.c{$(CFG)\$(PLAT)\libpsl\}.obj::
Packit Service dcb6c2
	$(CC) $(BASE_CFLAGS) $(PSL_ADDITIONAL_CFLAGS) $(PSL_INCLUDES) /Fo$(CFG)\$(PLAT)\libpsl\ /c @<<
Packit Service dcb6c2
$<
Packit Service dcb6c2
<<
Packit Service dcb6c2
Packit Service dcb6c2
{..\tools\}.c{$(CFG)\$(PLAT)\psl\}.obj::
Packit Service dcb6c2
	$(CC) $(BASE_CFLAGS) $(PSL_INCLUDES) /Fo$(CFG)\$(PLAT)\psl\ /c @<<
Packit Service dcb6c2
$<
Packit Service dcb6c2
<<
Packit Service dcb6c2
Packit Service dcb6c2
# Make sure we generate suffixes_dafsa.c before trying to compile psl.c
Packit Service dcb6c2
$(CFG)\$(PLAT)\libpsl\psl.obj: $(CFG)\$(PLAT)\libpsl\suffixes_dafsa.c
Packit Service dcb6c2
Packit Service dcb6c2
# Inference rules for building the test programs
Packit Service dcb6c2
# Used for programs with a single source file.
Packit Service dcb6c2
# Format is as follows
Packit Service dcb6c2
# (all dirs must have a trailing '\'):
Packit Service dcb6c2
#
Packit Service dcb6c2
# {$(srcdir)}.$(srcext){$(destdir)}.exe::
Packit Service dcb6c2
# 	$(CC)|$(CXX) $(cflags) $< /Fo$*.obj  /Fe$@ [/link $(linker_flags) $(dep_libs)]
Packit Service dcb6c2
Packit Service dcb6c2
{..\tests\}.c{$(CFG)\$(PLAT)\}.exe:
Packit Service dcb6c2
	@if not exist $(PSL_UTILS) $(MAKE) -f Makefile.vc $(PSL_MAKE_OPTIONS) $(PSL_UTILS)
Packit Service dcb6c2
	@if not exist $(CFG)\$(PLAT)\tests $(MAKE) -f Makefile.vc $(PSL_MAKE_OPTIONS) $(CFG)\$(PLAT)\tests
Packit Service dcb6c2
	$(CC) $(PSL_TEST_CFLAGS) $(PSL_INCLUDES) /Fo$(CFG)\$(PLAT)\tests\ /Fe$@	\
Packit Service dcb6c2
	$< /link $(LDFLAGS) $(PSL_LIB) $(PSL_ADDITIONAL_LIBS)
Packit Service dcb6c2
	@if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
Packit Service dcb6c2
Packit Service dcb6c2
# Rules for building .lib files
Packit Service dcb6c2
!ifdef STATIC
Packit Service dcb6c2
$(PSL_LIB): $(CFG)\$(PLAT)\libpsl ..\config.h $(libpsl_OBJS)
Packit Service dcb6c2
	lib $(ARFLAGS) /out:$@ @<<
Packit Service dcb6c2
$(libpsl_OBJS)
Packit Service dcb6c2
<<
Packit Service dcb6c2
Packit Service dcb6c2
!else
Packit Service dcb6c2
$(PSL_LIB): $(PSL_DLL)
Packit Service dcb6c2
!endif
Packit Service dcb6c2
Packit Service dcb6c2
# Rules for linking DLLs
Packit Service dcb6c2
# Format is as follows (the mt command is needed for MSVC 2005/2008 builds):
Packit Service dcb6c2
# $(dll_name_with_path): $(dependent_libs_files_objects_and_items)
Packit Service dcb6c2
#	link /DLL [$(linker_flags)] [$(dependent_libs)] [/def:$(def_file_if_used)] [/implib:$(lib_name_if_needed)] -out:$@ @<<
Packit Service dcb6c2
# $(dependent_objects)
Packit Service dcb6c2
# <<
Packit Service dcb6c2
# 	@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
Packit Service dcb6c2
Packit Service dcb6c2
$(PSL_DLL): ..\config.h $(libpsl_OBJS)
Packit Service dcb6c2
	link $(LDFLAGS) $(PSL_ADDITIONAL_LIBS) /DLL /out:$@ @<<
Packit Service dcb6c2
$(libpsl_OBJS)
Packit Service dcb6c2
<<
Packit Service dcb6c2
	@if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
Packit Service dcb6c2
Packit Service dcb6c2
# Rules for linking Executables
Packit Service dcb6c2
# Format is as follows (the mt command is needed for MSVC 2005/2008 builds):
Packit Service dcb6c2
# $(dll_name_with_path): $(dependent_libs_files_objects_and_items)
Packit Service dcb6c2
#	link [$(linker_flags)] [$(dependent_libs)] -out:$@ @<<
Packit Service dcb6c2
# $(dependent_objects)
Packit Service dcb6c2
# <<
Packit Service dcb6c2
# 	@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
Packit Service dcb6c2
Packit Service dcb6c2
$(CFG)\$(PLAT)\psl.exe: $(PSL_LIB) $(CFG)\$(PLAT)\psl $(psl_OBJS)
Packit Service dcb6c2
	link $(LDFLAGS) $(PSL_LIB) $(PSL_ADDITIONAL_LIBS) /PDB:$(@R)-tool.pdb /out:$@ @<<
Packit Service dcb6c2
$(psl_OBJS)
Packit Service dcb6c2
<<
Packit Service dcb6c2
	@if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
Packit Service dcb6c2
Packit Service dcb6c2
# Show the build configuration for this build
Packit Service dcb6c2
build-info:
Packit Service dcb6c2
	@echo -------------------------------
Packit Service dcb6c2
	@echo Build configuration for libpsl:
Packit Service dcb6c2
	@echo -------------------------------
Packit Service dcb6c2
	@echo Configuration/Platform: $(CFG)/$(PLAT)
Packit Service dcb6c2
	@echo Library Build Type: $(PSL_LIBTYPE)
Packit Service dcb6c2
	@echo Enabled Runtime: $(ENABLED_RUNTIME)
Packit Service dcb6c2
	@echo Enabled Builtin: $(ENABLED_BUILTIN)
Packit Service dcb6c2
	@if not "$(ENABLED_BUILTIN)" == "none" echo PSL File: $(PSL_FILE)
Packit Service dcb6c2
Packit Service dcb6c2
clean:
Packit Service dcb6c2
	@if exist $(CFG)\$(PLAT)\psl.dafsa del $(CFG)\$(PLAT)\psl.dafsa
Packit Service dcb6c2
	@if exist $(CFG)\$(PLAT)\psl_ascii.dafsa del $(CFG)\$(PLAT)\psl_ascii.dafsa
Packit Service dcb6c2
	@if exist .\libpsl.pc del /f /q .\libpsl.pc
Packit Service dcb6c2
	@-del /f /q $(CFG)\$(PLAT)\*.exe
Packit Service dcb6c2
	@-del /f /q $(CFG)\$(PLAT)\*.lib
Packit Service dcb6c2
	@-del /f /q $(CFG)\$(PLAT)\*.pdb
Packit Service dcb6c2
	@-del /f /q $(CFG)\$(PLAT)\*.dll.manifest
Packit Service dcb6c2
	@-del /f /q $(CFG)\$(PLAT)\*.dll
Packit Service dcb6c2
	@-del /f /q $(CFG)\$(PLAT)\*.ilk
Packit Service dcb6c2
	@-if exist $(CFG)\$(PLAT)\tests del /f /q $(CFG)\$(PLAT)\tests\*.obj
Packit Service dcb6c2
	@-del /f /q $(CFG)\$(PLAT)\libpsl\*.obj
Packit Service dcb6c2
	@-del /f /q $(CFG)\$(PLAT)\libpsl\suffixes_dafsa.c
Packit Service dcb6c2
	@-del /f /q ..\config.h
Packit Service dcb6c2
	@-del /f /q vc$(PDBVER)0.pdb
Packit Service dcb6c2
	@-rmdir /s /q $(CFG)\$(PLAT)