mirror of
https://gitlab.freedesktop.org/pkg-config/pkg-config.git
synced 2026-04-04 14:20:44 +02:00
One can pass in GLIB_PREFIX, INCLUDEDIR and/or LIBDIR to help find the GLib headers and libraries needed for the build.
106 lines
2.6 KiB
Text
106 lines
2.6 KiB
Text
# Note: This does assume an existing GLib installation!
|
|
# Visual Studio builds of GLib does not need an existing pkg-config
|
|
# installation, so build GLib first before using this.
|
|
|
|
# Set these if necessary. If building from GLib's included
|
|
# Visual Studio projects, this should be able to locate the GLib build
|
|
# out-of-the-box if they were not moved. GLib's headers will be found
|
|
# in $(INCLUDEDIR)\glib-2.0 and $(LIBDIR)\glib-2.0\include
|
|
# and its import library will be found in $(LIBDIR).
|
|
|
|
!ifndef GLIB_PREFIX
|
|
GLIB_PREFIX = ..\vs$(VSVER)\$(PLAT)
|
|
!endif
|
|
|
|
!ifndef INCLUDEDIR
|
|
INCLUDEDIR = $(GLIB_PREFIX)\include
|
|
!endif
|
|
|
|
!ifndef LIBDIR
|
|
LIBDIR = $(GLIB_PREFIX)\lib
|
|
!endif
|
|
|
|
# The items below this line should not be changed, unless one is maintaining
|
|
# the NMake Makefiles.
|
|
|
|
!include detectenv-msvc.mak
|
|
|
|
!if "$(VALID_CFGSET)" == "TRUE"
|
|
CFLAGS = $(CFLAGS_ADD) /W3 /Zi /FImsvc_recommended_pragmas.h /I. \
|
|
/I$(INCLUDEDIR)\glib-2.0 \
|
|
/I$(LIBDIR)\glib-2.0\include
|
|
|
|
# PKG_CONFIG_SYSTEM_INCLUDE_PATH and PKG_CONFIG_SYSTEM_LIBRARY_PATH only
|
|
# work for GCC builds for now, so just set this to nothing for now
|
|
|
|
pkg_config_CFLAGS = \
|
|
$(CFLAGS) \
|
|
/DHAVE_CONFIG_H \
|
|
/DPKG_CONFIG_SYSTEM_INCLUDE_PATH="\"\"" \
|
|
/DPKG_CONFIG_SYSTEM_LIBRARY_PATH="\"\""
|
|
|
|
LDFLAGS_BASE = $(LDFLAGS_ARCH) /libpath:$(LIBDIR) /DEBUG
|
|
NULL=
|
|
|
|
!if "$(CFG)" == "debug"
|
|
LDFLAGS = $(LDFLAGS_BASE)
|
|
!else
|
|
LDFLAGS = $(LDFLAGS_BASE) /opt:ref /LTCG
|
|
!endif
|
|
|
|
!include Makefile.sources
|
|
|
|
# Convert the source (*.c) listing to object (.obj) listing in
|
|
# another NMake Makefile module, include it, and clean it up.
|
|
|
|
!if [echo pkg_config_OBJS = \> objs.mak]
|
|
!endif
|
|
|
|
!if [for %c in ($(pkg_config_SOURCES)) do @if "%~xc" == ".c" echo. ^$(CFG)\^$(PLAT)\pkg-config\%~nc.obj \>> objs.mak]
|
|
!endif
|
|
|
|
!if [echo. ^$(NULL)>> objs.mak]
|
|
!endif
|
|
|
|
!include objs.mak
|
|
|
|
!if [del /f /q objs.mak]
|
|
!endif
|
|
|
|
pkg_config_LIBS = glib-2.0.lib
|
|
|
|
{}.c{$(CFG)\$(PLAT)\pkg-config\}.obj::
|
|
$(CC) $(pkg_config_CFLAGS) /Fo$(CFG)\$(PLAT)\pkg-config\ /c @<<
|
|
$<
|
|
<<
|
|
|
|
all: $(CFG)\$(PLAT)\pkg-config.exe
|
|
|
|
$(CFG)\$(PLAT)\pkg-config.exe: $(CFG)\$(PLAT)\pkg-config config.h $(pkg_config_OBJS)
|
|
link $(LDFLAGS) $(pkg_config_LIBS) -out:$@ @<<
|
|
$(pkg_config_OBJS)
|
|
<<
|
|
@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
|
|
|
|
$(CFG)\$(PLAT)\pkg-config:
|
|
@-mkdir $@
|
|
|
|
config.h: config.h.win32
|
|
@-copy $@.win32 $@
|
|
|
|
clean:
|
|
@-del /f /q $(CFG)\$(PLAT)\*.pdb
|
|
@-del /f /q $(CFG)\$(PLAT)\*.exe.manifest
|
|
@-del /f /q $(CFG)\$(PLAT)\*.exe
|
|
@-del /f /q $(CFG)\$(PLAT)\*.ilk
|
|
@-del /f /q $(CFG)\$(PLAT)\pkg-config\*.obj
|
|
@-rmdir /s /q $(CFG)\$(PLAT)
|
|
@-del vc$(VSVER)0.pdb
|
|
@-del config.h
|
|
|
|
!else
|
|
all:
|
|
@echo You need to specify a valid configuration, via
|
|
@echo CFG=release or CFG=debug
|
|
!endif
|
|
|