# Copyright 2001-2019 The Apache Software Foundation or its licensors, as
# applicable.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# ====================================================================
#
# NMAKEmakefile   Master jansson makefile.
# Usage:
#
# Originally contributed by Mladen Turk <mturk redhat.com>
#
# ====================================================================
#

CFLAGS = -DHAVE_CONFIG_H -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
!IF !DEFINED(JANSSON_BUILD_SHARED_LIBS) || "$(JANSSON_BUILD_SHARED_LIBS)" == ""
TARGET  = LIB
PROJECT = jansson-2
!ELSE
TARGET  = DLL
PROJECT = libjansson-2
!ENDIF

!IF !DEFINED(SRCDIR) || "$(SRCDIR)" == ""
SRCDIR = .
!ENDIF

!include <xbuild.inc>

INCLUDES = -I$(SRCDIR) -I$(SRCDIR)\src
PDBFLAGS = -Fo$(WORKDIR)\ -Fd$(WORKDIR)\$(PROJECT)
OBJECTS = \
	$(WORKDIR)\dump.obj \
	$(WORKDIR)\error.obj \
	$(WORKDIR)\hashtable.obj \
	$(WORKDIR)\hashtable_seed.obj \
	$(WORKDIR)\load.obj \
	$(WORKDIR)\memory.obj \
	$(WORKDIR)\pack_unpack.obj \
	$(WORKDIR)\strbuffer.obj \
	$(WORKDIR)\strconv.obj \
	$(WORKDIR)\utf.obj \
	$(WORKDIR)\value.obj \
	$(WORKDIR)\version.obj

HEADERS = \
	$(SRCDIR)\src\jansson_config.h \
	$(SRCDIR)\jansson_private_config.h


BUILDINC = $(PREFIX)\include
BUILDLIB = $(PREFIX)\$(_LIB)
BUILDOUT = $(PREFIX)\bin

!IF "$(TARGET)" == "DLL"
BUILDBIN = $(WORKDIR)\$(PROJECT).dll
BUILDPDB = $(WORKDIR)\$(PROJECT).pdb
BUILDMFT = $(BUILDBIN).manifest
!ELSE
BUILDBIN = $(WORKDIR)\$(PROJECT).lib
!ENDIF


all : $(WORKDIR) $(HEADERS) $(BUILDBIN)

$(WORKDIR) :
	@$(MAKEWORKDIR)

.SUFFIXES : .hw

{$(SRCDIR)}.hw{$(SRCDIR)}.h:
	@copy /Y $< $@ >NUL

{$(SRCDIR)\src}.hw{$(SRCDIR)\src}.h:
	@copy /Y $< $@ >NUL

{$(SRCDIR)\src}.c{$(WORKDIR)}.obj:
	$(CC) $(CFLAGS) $(INCLUDES) $(PDBFLAGS) $<

!IF "$(TARGET)" == "DLL"
$(BUILDBIN): $(WORKDIR) $(OBJECTS)
	$(LINK) $(LFLAGS) $(OBJECTS) $(LIBS) /def:$(SRCDIR)\src\jansson.def /pdb:$(BUILDPDB) /out:$(BUILDBIN)
	IF EXIST $(BUILDMFT) \
		mt -nologo -manifest $(BUILDMFT) -outputresource:$(BUILDBIN);2
!ELSE
$(BUILDBIN): $(WORKDIR) $(OBJECTS)
	$(LINK) $(LFLAGS) $(OBJECTS) /out:$(BUILDBIN)
!ENDIF

clean:
	@$(CLEANTARGET)

!IF "$(TARGET)" == "DLL"
install: all
	@xcopy "$(WORKDIR)\*.lib" "$(BUILDLIB)" /I /Y /Q
	@xcopy "$(WORKDIR)\*.dll" "$(BUILDOUT)" /I /Y /Q 2>NUL
	@xcopy "$(WORKDIR)\*.pdb" "$(BUILDOUT)" /I /Y /Q 2>NUL
!ELSE
install: all
	@xcopy "$(SRCDIR)\src\jansson.h" "$(BUILDINC)\$(NULL)" /Y /Q
	@xcopy "$(SRCDIR)\src\jansson_config.h" "$(BUILDINC)\$(NULL)" /Y /Q
	@xcopy "$(WORKDIR)\*.lib" "$(BUILDLIB)" /I /Y /Q
	@xcopy "$(WORKDIR)\*.pdb" "$(BUILDLIB)" /I /Y /Q 2>NUL
!ENDIF

