# makefile to build generated files

include ../../../platform.mk

# include directories
OSROOTDIR = ..$(PS)..$(PS)..$(PS)..
LIBDIR  = $(OSROOTDIR)$(PS)c$(RTDIRSFX)$(PS)lib
RTSRCDIR = $(OSROOTDIR)$(PS)rtsrc
RTXSRCDIR = $(OSROOTDIR)$(PS)rtxsrc
PERSRCDIR = $(OSROOTDIR)$(PS)rtpersrc
SRCDIR = ..$(PS)src
HFILESDIR = ..$(PS)src
HFILES =  \
$(RTSRCDIR)$(PS)asn1type.h \
$(RTXSRCDIR)$(PS)osMacros.h \
$(RTXSRCDIR)$(PS)osSysTypes.h \
$(RTXSRCDIR)$(PS)rtxContext.h \
$(RTXSRCDIR)$(PS)rtxDList.h \
$(RTXSRCDIR)$(PS)rtxExternDefs.h \
$(RTXSRCDIR)$(PS)rtxCommonDefs.h \
$(RTXSRCDIR)$(PS)rtxStack.h \
$(PERSRCDIR)$(PS)asn1per.h

# compiler defs
CFLAGS = -c $(CVARS_) $(CFLAGS_) $(CBLDTYPE_) -D_TRACE
IPATHS = -I$(SRCDIR) -I$(OSROOTDIR) -I$(HFILESDIR) -I../../specs -I$(RTSRCDIR) -I$(PERSRCDIR) $(IPATHS_)
LINKOPT = $(LINKOPT_)

# run-time libraries
LIBS = $(LIBDIR)/$(LIBPFX)asn1per$(A) $(LIBDIR)/$(LIBPFX)asn1rt$(A)
LLIBS = $(LLPFX)asn1per$(LLAEXT) $(LLPFX)asn1rt$(LLAEXT) $(LLSYS)
LPATHS = $(LPPFX)$(LIBDIR)

OBJECTS =  \
NGAP-CommonDataTypes$(OBJ) \
NGAP-IEs$(OBJ) \
NGAP-PDU-Contents$(OBJ) \
NGAP-PDU-Descriptions$(OBJ)

ENCOBJECTS =  \
NGAP-CommonDataTypesEnc$(OBJ) \
NGAP-IEsEnc$(OBJ) \
NGAP-PDU-ContentsEnc$(OBJ) \
NGAP-PDU-DescriptionsEnc$(OBJ)

DECOBJECTS =  \
NGAP-CommonDataTypesDec$(OBJ) \
NGAP-IEsDec$(OBJ) \
NGAP-PDU-ContentsDec$(OBJ) \
NGAP-PDU-DescriptionsDec$(OBJ)

PRTOBJECTS =  \
NGAP-CommonDataTypesPrint$(OBJ) \
NGAP-IEsPrint$(OBJ) \
NGAP-PDU-ContentsPrint$(OBJ) \
NGAP-PDU-DescriptionsPrint$(OBJ)

all : $(OBJECTS) $(ENCOBJECTS) $(DECOBJECTS) $(PRTOBJECTS)  \
..$(PS)lib$(PS)$(LIBPFX)ngap$(A)

# .c -> .obj rules
# common file rules
NGAP-CommonDataTypes$(OBJ) : $(SRCDIR)$(PS)NGAP-CommonDataTypes.c \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-CommonDataTypes.c

# decode file rules
NGAP-CommonDataTypesDec$(OBJ) : $(SRCDIR)$(PS)NGAP-CommonDataTypesDec.c \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-CommonDataTypesDec.c

# encode file rules
NGAP-CommonDataTypesEnc$(OBJ) : $(SRCDIR)$(PS)NGAP-CommonDataTypesEnc.c \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-CommonDataTypesEnc.c

# print file rules
NGAP-CommonDataTypesPrint$(OBJ) : $(SRCDIR)$(PS)NGAP-CommonDataTypesPrint.c \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-CommonDataTypesPrint.c

# common file rules
NGAP-IEs$(OBJ) : $(SRCDIR)$(PS)NGAP-IEs.c \
$(HFILESDIR)$(PS)NGAP-IEs.h \
$(HFILESDIR)$(PS)NGAP-Constants.h \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)NGAP-Containers.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-IEs.c

# decode file rules
NGAP-IEsDec$(OBJ) : $(SRCDIR)$(PS)NGAP-IEsDec.c \
$(HFILESDIR)$(PS)NGAP-IEs.h \
$(HFILESDIR)$(PS)NGAP-Constants.h \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)NGAP-Containers.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-IEsDec.c

# encode file rules
NGAP-IEsEnc$(OBJ) : $(SRCDIR)$(PS)NGAP-IEsEnc.c \
$(HFILESDIR)$(PS)NGAP-IEs.h \
$(HFILESDIR)$(PS)NGAP-Constants.h \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)NGAP-Containers.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-IEsEnc.c

# print file rules
NGAP-IEsPrint$(OBJ) : $(SRCDIR)$(PS)NGAP-IEsPrint.c \
$(HFILESDIR)$(PS)NGAP-IEs.h \
$(HFILESDIR)$(PS)NGAP-Constants.h \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)NGAP-Containers.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-IEsPrint.c

# common file rules
NGAP-PDU-Contents$(OBJ) : $(SRCDIR)$(PS)NGAP-PDU-Contents.c \
$(HFILESDIR)$(PS)NGAP-PDU-Contents.h \
$(HFILESDIR)$(PS)NGAP-IEs.h \
$(HFILESDIR)$(PS)NGAP-Containers.h \
$(HFILESDIR)$(PS)NGAP-Constants.h \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-PDU-Contents.c

# decode file rules
NGAP-PDU-ContentsDec$(OBJ) : $(SRCDIR)$(PS)NGAP-PDU-ContentsDec.c \
$(HFILESDIR)$(PS)NGAP-PDU-Contents.h \
$(HFILESDIR)$(PS)NGAP-IEs.h \
$(HFILESDIR)$(PS)NGAP-Containers.h \
$(HFILESDIR)$(PS)NGAP-Constants.h \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-PDU-ContentsDec.c

# encode file rules
NGAP-PDU-ContentsEnc$(OBJ) : $(SRCDIR)$(PS)NGAP-PDU-ContentsEnc.c \
$(HFILESDIR)$(PS)NGAP-PDU-Contents.h \
$(HFILESDIR)$(PS)NGAP-IEs.h \
$(HFILESDIR)$(PS)NGAP-Containers.h \
$(HFILESDIR)$(PS)NGAP-Constants.h \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-PDU-ContentsEnc.c

# print file rules
NGAP-PDU-ContentsPrint$(OBJ) : $(SRCDIR)$(PS)NGAP-PDU-ContentsPrint.c \
$(HFILESDIR)$(PS)NGAP-PDU-Contents.h \
$(HFILESDIR)$(PS)NGAP-IEs.h \
$(HFILESDIR)$(PS)NGAP-Containers.h \
$(HFILESDIR)$(PS)NGAP-Constants.h \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-PDU-ContentsPrint.c

# common file rules
NGAP-PDU-Descriptions$(OBJ) : $(SRCDIR)$(PS)NGAP-PDU-Descriptions.c \
$(HFILESDIR)$(PS)NGAP-PDU-Descriptions.h \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)NGAP-PDU-Contents.h \
$(HFILESDIR)$(PS)NGAP-Constants.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-PDU-Descriptions.c

# decode file rules
NGAP-PDU-DescriptionsDec$(OBJ) : $(SRCDIR)$(PS)NGAP-PDU-DescriptionsDec.c \
$(HFILESDIR)$(PS)NGAP-PDU-Descriptions.h \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)NGAP-PDU-Contents.h \
$(HFILESDIR)$(PS)NGAP-Constants.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-PDU-DescriptionsDec.c

# encode file rules
NGAP-PDU-DescriptionsEnc$(OBJ) : $(SRCDIR)$(PS)NGAP-PDU-DescriptionsEnc.c \
$(HFILESDIR)$(PS)NGAP-PDU-Descriptions.h \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)NGAP-PDU-Contents.h \
$(HFILESDIR)$(PS)NGAP-Constants.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-PDU-DescriptionsEnc.c

# print file rules
NGAP-PDU-DescriptionsPrint$(OBJ) : $(SRCDIR)$(PS)NGAP-PDU-DescriptionsPrint.c \
$(HFILESDIR)$(PS)NGAP-PDU-Descriptions.h \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)NGAP-PDU-Contents.h \
$(HFILESDIR)$(PS)NGAP-Constants.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)NGAP-PDU-DescriptionsPrint.c

# .obj -> .lib rules
..$(PS)lib$(PS)$(LIBPFX)ngap$(A) : $(OBJECTS) $(ENCOBJECTS)  \
$(DECOBJECTS) $(PRTOBJECTS)
	$(LIBCMD) $(OBJECTS) $(ENCOBJECTS) $(DECOBJECTS) $(PRTOBJECTS)

# .asn -> .c .h rules
$(SRCDIR)/NGAP-CommonDataTypesEnc.c \
$(SRCDIR)/NGAP-CommonDataTypesDec.c \
$(SRCDIR)/NGAP-CommonDataTypes.c \
$(SRCDIR)/NGAP-CommonDataTypesPrint.c \
$(HFILESDIR)$(PS)NGAP-CommonDataTypes.h \
$(HFILESDIR)$(PS)NGAP-Constants.h \
$(HFILESDIR)$(PS)NGAP-Containers.h \
$(SRCDIR)/NGAP-IEsEnc.c \
$(SRCDIR)/NGAP-IEsDec.c \
$(SRCDIR)/NGAP-IEs.c \
$(SRCDIR)/NGAP-IEsPrint.c \
$(HFILESDIR)$(PS)NGAP-IEs.h \
$(SRCDIR)/NGAP-PDU-ContentsEnc.c \
$(SRCDIR)/NGAP-PDU-ContentsDec.c \
$(SRCDIR)/NGAP-PDU-Contents.c \
$(SRCDIR)/NGAP-PDU-ContentsPrint.c \
$(HFILESDIR)$(PS)NGAP-PDU-Contents.h \
$(SRCDIR)/NGAP-PDU-DescriptionsEnc.c \
$(SRCDIR)/NGAP-PDU-DescriptionsDec.c \
$(SRCDIR)/NGAP-PDU-Descriptions.c \
$(SRCDIR)/NGAP-PDU-DescriptionsPrint.c \
$(HFILESDIR)$(PS)NGAP-PDU-Descriptions.h \
$(HFILESDIR)$(PS)rtkey.h \
\
: ..$(PS)..$(PS)specs$(PS)ngap.cfg ..$(PS)..$(PS)specs$(PS)NGAP-CommonDataTypes.asn ..$(PS)..$(PS)specs$(PS)NGAP-Constants.asn ..$(PS)..$(PS)specs$(PS)NGAP-Containers.asn ..$(PS)..$(PS)specs$(PS)NGAP-IEs.asn ..$(PS)..$(PS)specs$(PS)NGAP-PDU-Contents.asn ..$(PS)..$(PS)specs$(PS)NGAP-PDU-Descriptions.asn $(OSROOTDIR)$(PS)bin$(PS)asn1c$(EXE)
	$(OSROOTDIR)$(PS)bin$(PS)asn1c ..$(PS)..$(PS)specs$(PS)NGAP-CommonDataTypes.asn ..$(PS)..$(PS)specs$(PS)NGAP-Constants.asn ..$(PS)..$(PS)specs$(PS)NGAP-Containers.asn ..$(PS)..$(PS)specs$(PS)NGAP-IEs.asn ..$(PS)..$(PS)specs$(PS)NGAP-PDU-Contents.asn ..$(PS)..$(PS)specs$(PS)NGAP-PDU-Descriptions.asn -c -aper -per -config ../../specs/ngap.cfg -fqenum -oh $(HFILESDIR) -i ../../specs -o ../src -genprint -strict-size -table-unions -trace -fqtvalue

clean:
	$(RM) $(SRCDIR)$(PS)NGAP-CommonDataTypesEnc.c
	$(RM) $(SRCDIR)$(PS)NGAP-CommonDataTypesDec.c
	$(RM) $(SRCDIR)$(PS)NGAP-CommonDataTypes.c
	$(RM) $(SRCDIR)$(PS)NGAP-CommonDataTypesPrint.c
	$(RM) $(HFILESDIR)$(PS)NGAP-CommonDataTypes.h
	$(RM) $(HFILESDIR)$(PS)NGAP-Constants.h
	$(RM) $(HFILESDIR)$(PS)NGAP-Containers.h
	$(RM) $(SRCDIR)$(PS)NGAP-IEsEnc.c
	$(RM) $(SRCDIR)$(PS)NGAP-IEsDec.c
	$(RM) $(SRCDIR)$(PS)NGAP-IEs.c
	$(RM) $(SRCDIR)$(PS)NGAP-IEsPrint.c
	$(RM) $(HFILESDIR)$(PS)NGAP-IEs.h
	$(RM) $(SRCDIR)$(PS)NGAP-PDU-ContentsEnc.c
	$(RM) $(SRCDIR)$(PS)NGAP-PDU-ContentsDec.c
	$(RM) $(SRCDIR)$(PS)NGAP-PDU-Contents.c
	$(RM) $(SRCDIR)$(PS)NGAP-PDU-ContentsPrint.c
	$(RM) $(HFILESDIR)$(PS)NGAP-PDU-Contents.h
	$(RM) $(SRCDIR)$(PS)NGAP-PDU-DescriptionsEnc.c
	$(RM) $(SRCDIR)$(PS)NGAP-PDU-DescriptionsDec.c
	$(RM) $(SRCDIR)$(PS)NGAP-PDU-Descriptions.c
	$(RM) $(SRCDIR)$(PS)NGAP-PDU-DescriptionsPrint.c
	$(RM) $(HFILESDIR)$(PS)NGAP-PDU-Descriptions.h
	$(RM) $(HFILESDIR)$(PS)rtkey.h
	$(RM) $(HFILESDIR)$(PS)rtkey.h
	$(RM) *$(OBJ)
	$(RM) *~
	$(RM_MSVC_FILES)
	$(RM) ..$(PS)lib$(PS)$(LIBPFX)ngap$(A)
