# 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_) $(COPTIMIZE_)
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 =  \
LPP-Broadcast-Definitions$(OBJ) \
LPP-PDU-Definitions$(OBJ)

ENCOBJECTS =  \
LPP-Broadcast-DefinitionsEnc$(OBJ) \
LPP-PDU-DefinitionsEnc$(OBJ)

DECOBJECTS =  \
LPP-Broadcast-DefinitionsDec$(OBJ) \
LPP-PDU-DefinitionsDec$(OBJ)

PRTOBJECTS =  \
LPP-Broadcast-DefinitionsPrint$(OBJ) \
LPP-PDU-DefinitionsPrint$(OBJ)

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

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

# decode file rules
LPP-Broadcast-DefinitionsDec$(OBJ) : $(SRCDIR)$(PS)LPP-Broadcast-DefinitionsDec.c \
$(HFILESDIR)$(PS)LPP-Broadcast-Definitions.h \
$(HFILESDIR)$(PS)LPP-PDU-Definitions.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)LPP-Broadcast-DefinitionsDec.c

# encode file rules
LPP-Broadcast-DefinitionsEnc$(OBJ) : $(SRCDIR)$(PS)LPP-Broadcast-DefinitionsEnc.c \
$(HFILESDIR)$(PS)LPP-Broadcast-Definitions.h \
$(HFILESDIR)$(PS)LPP-PDU-Definitions.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)LPP-Broadcast-DefinitionsEnc.c

# print file rules
LPP-Broadcast-DefinitionsPrint$(OBJ) : $(SRCDIR)$(PS)LPP-Broadcast-DefinitionsPrint.c \
$(HFILESDIR)$(PS)LPP-Broadcast-Definitions.h \
$(HFILESDIR)$(PS)LPP-PDU-Definitions.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)LPP-Broadcast-DefinitionsPrint.c

# common file rules
LPP-PDU-Definitions$(OBJ) : $(SRCDIR)$(PS)LPP-PDU-Definitions.c \
$(HFILESDIR)$(PS)LPP-PDU-Definitions.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)LPP-PDU-Definitions.c

# decode file rules
LPP-PDU-DefinitionsDec$(OBJ) : $(SRCDIR)$(PS)LPP-PDU-DefinitionsDec.c \
$(HFILESDIR)$(PS)LPP-PDU-Definitions.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)LPP-PDU-DefinitionsDec.c

# encode file rules
LPP-PDU-DefinitionsEnc$(OBJ) : $(SRCDIR)$(PS)LPP-PDU-DefinitionsEnc.c \
$(HFILESDIR)$(PS)LPP-PDU-Definitions.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)LPP-PDU-DefinitionsEnc.c

# print file rules
LPP-PDU-DefinitionsPrint$(OBJ) : $(SRCDIR)$(PS)LPP-PDU-DefinitionsPrint.c \
$(HFILESDIR)$(PS)LPP-PDU-Definitions.h \
$(HFILESDIR)$(PS)rtkey.h \
$(HFILES)
	$(CC) $(CFLAGS) -c $(IPATHS) $(SRCDIR)$(PS)LPP-PDU-DefinitionsPrint.c

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

# .asn -> .c .h rules
$(SRCDIR)/LPP-Broadcast-DefinitionsEnc.c \
$(SRCDIR)/LPP-Broadcast-DefinitionsDec.c \
$(SRCDIR)/LPP-Broadcast-Definitions.c \
$(SRCDIR)/LPP-Broadcast-DefinitionsPrint.c \
$(HFILESDIR)$(PS)LPP-Broadcast-Definitions.h \
$(SRCDIR)/LPP-PDU-DefinitionsEnc.c \
$(SRCDIR)/LPP-PDU-DefinitionsDec.c \
$(SRCDIR)/LPP-PDU-Definitions.c \
$(SRCDIR)/LPP-PDU-DefinitionsPrint.c \
$(HFILESDIR)$(PS)LPP-PDU-Definitions.h \
$(HFILESDIR)$(PS)rtkey.h \
\
: ..$(PS)..$(PS)specs$(PS)lpp.cfg ..$(PS)..$(PS)specs$(PS)LPP-Broadcast-Definitions.asn ..$(PS)..$(PS)specs$(PS)LPP-PDU-Definitions.asn $(OSROOTDIR)$(PS)bin$(PS)asn1c$(EXE)
	$(OSROOTDIR)$(PS)bin$(PS)asn1c ..$(PS)..$(PS)specs$(PS)LPP-Broadcast-Definitions.asn ..$(PS)..$(PS)specs$(PS)LPP-PDU-Definitions.asn -c -aper -per -config ../../specs/lpp.cfg -compact -fqenum -oh $(HFILESDIR) -i ../../specs -o ../src -genprint -strict-size -table-unions -fqtvalue

clean:
	$(RM) $(SRCDIR)$(PS)LPP-Broadcast-DefinitionsEnc.c
	$(RM) $(SRCDIR)$(PS)LPP-Broadcast-DefinitionsDec.c
	$(RM) $(SRCDIR)$(PS)LPP-Broadcast-Definitions.c
	$(RM) $(SRCDIR)$(PS)LPP-Broadcast-DefinitionsPrint.c
	$(RM) $(HFILESDIR)$(PS)LPP-Broadcast-Definitions.h
	$(RM) $(SRCDIR)$(PS)LPP-PDU-DefinitionsEnc.c
	$(RM) $(SRCDIR)$(PS)LPP-PDU-DefinitionsDec.c
	$(RM) $(SRCDIR)$(PS)LPP-PDU-Definitions.c
	$(RM) $(SRCDIR)$(PS)LPP-PDU-DefinitionsPrint.c
	$(RM) $(HFILESDIR)$(PS)LPP-PDU-Definitions.h
	$(RM) $(HFILESDIR)$(PS)rtkey.h
	$(RM) $(HFILESDIR)$(PS)rtkey.h
	$(RM) *$(OBJ)
	$(RM) *~
	$(RM_MSVC_FILES)
	$(RM) ..$(PS)lib$(PS)$(LIBPFX)lpp$(A)
