TOP = ../..
SUBDIRS = 

include $(TOP)/config.mk

ASN1_SOURCE = ../supl-common.asn ../supl-end.asn ../supl-pos.asn \
  ../supl-response.asn ../supl-start.asn ../supl-ulp.asn \
  ../supl-init.asn ../supl-posinit.asn

ASN_MODULE_SOURCE =	\
	Version.c	\
	SessionID.c	\
	SetSessionID.c	\
	SETId.c	\
	SlpSessionID.c	\
	IPAddress.c	\
	SLPAddress.c	\
	FQDN.c	\
	Ver.c	\
	LocationId.c	\
	Status.c	\
	CellInfo.c	\
	Position.c	\
	PositionEstimate.c	\
	AltitudeInfo.c	\
	CdmaCellInformation.c	\
	GsmCellInformation.c	\
	WcdmaCellInformation.c	\
	FrequencyInfo.c	\
	FrequencyInfoFDD.c	\
	FrequencyInfoTDD.c	\
	UARFCN.c	\
	NMR.c	\
	NMRelement.c	\
	MeasuredResultsList.c	\
	MeasuredResults.c	\
	CellMeasuredResultsList.c	\
	UTRA-CarrierRSSI.c	\
	CellMeasuredResults.c	\
	CellParametersID.c	\
	TGSN.c	\
	PrimaryCCPCH-RSCP.c	\
	TimeslotISCP.c	\
	TimeslotISCP-List.c	\
	PrimaryCPICH-Info.c	\
	CPICH-Ec-N0.c	\
	CPICH-RSCP.c	\
	Pathloss.c	\
	QoP.c	\
	Velocity.c	\
	Horvel.c	\
	Horandvervel.c	\
	Horveluncert.c	\
	Horandveruncert.c	\
	StatusCode.c	\
	PosMethod.c	\
	SUPLEND.c	\
	SUPLINIT.c	\
	Notification.c	\
	NotificationType.c	\
	EncodingType.c	\
	FormatIndicator.c	\
	SLPMode.c	\
	MAC.c	\
	KeyIdentity.c	\
	SUPLPOS.c	\
	PosPayLoad.c	\
	SUPLPOSINIT.c	\
	RequestedAssistData.c	\
	XNavigationModel.c	\
	SatelliteInfo.c	\
	SatelliteInfoElement.c	\
	SUPLRESPONSE.c	\
	SETAuthKey.c	\
	KeyIdentity4.c	\
	SUPLSTART.c	\
	SETCapabilities.c	\
	PosTechnology.c	\
	PrefMethod.c	\
	PosProtocol.c	\
	ULP-PDU.c	\
	UlpMessage.c	\
	DUMMY.c	

ASN_MODULE_HEADER=	\
	Version.h	\
	SessionID.h	\
	SetSessionID.h	\
	SETId.h	\
	SlpSessionID.h	\
	IPAddress.h	\
	SLPAddress.h	\
	FQDN.h	\
	Ver.h	\
	LocationId.h	\
	Status.h	\
	CellInfo.h	\
	Position.h	\
	PositionEstimate.h	\
	AltitudeInfo.h	\
	CdmaCellInformation.h	\
	GsmCellInformation.h	\
	WcdmaCellInformation.h	\
	FrequencyInfo.h	\
	FrequencyInfoFDD.h	\
	FrequencyInfoTDD.h	\
	UARFCN.h	\
	NMR.h	\
	NMRelement.h	\
	MeasuredResultsList.h	\
	MeasuredResults.h	\
	CellMeasuredResultsList.h	\
	UTRA-CarrierRSSI.h	\
	CellMeasuredResults.h	\
	CellParametersID.h	\
	TGSN.h	\
	PrimaryCCPCH-RSCP.h	\
	TimeslotISCP.h	\
	TimeslotISCP-List.h	\
	PrimaryCPICH-Info.h	\
	CPICH-Ec-N0.h	\
	CPICH-RSCP.h	\
	Pathloss.h	\
	QoP.h	\
	Velocity.h	\
	Horvel.h	\
	Horandvervel.h	\
	Horveluncert.h	\
	Horandveruncert.h	\
	StatusCode.h	\
	PosMethod.h	\
	SUPLEND.h	\
	SUPLINIT.h	\
	Notification.h	\
	NotificationType.h	\
	EncodingType.h	\
	FormatIndicator.h	\
	SLPMode.h	\
	MAC.h	\
	KeyIdentity.h	\
	SUPLPOS.h	\
	PosPayLoad.h	\
	SUPLPOSINIT.h	\
	RequestedAssistData.h	\
	XNavigationModel.h	\
	SatelliteInfo.h	\
	SatelliteInfoElement.h	\
	SUPLRESPONSE.h	\
	SETAuthKey.h	\
	KeyIdentity4.h	\
	SUPLSTART.h	\
	SETCapabilities.h	\
	PosTechnology.h	\
	PrefMethod.h	\
	PosProtocol.h	\
	ULP-PDU.h	\
	UlpMessage.h	\
	DUMMY.h

ASN_MODULE_HEADER+=BOOLEAN.h
ASN_MODULE_SOURCE+=BOOLEAN.c
ASN_MODULE_HEADER+=ENUMERATED.h
ASN_MODULE_SOURCE+=ENUMERATED.c
ASN_MODULE_HEADER+=INTEGER.h
ASN_MODULE_HEADER+=NativeEnumerated.h
ASN_MODULE_HEADER+=GeneralizedTime.h
ASN_MODULE_SOURCE+=GeneralizedTime.c
ASN_MODULE_HEADER+=IA5String.h
ASN_MODULE_SOURCE+=IA5String.c
ASN_MODULE_SOURCE+=INTEGER.c
ASN_MODULE_SOURCE+=NativeEnumerated.c
ASN_MODULE_HEADER+=NativeInteger.h
ASN_MODULE_SOURCE+=NativeInteger.c
ASN_MODULE_HEADER+=UTCTime.h
ASN_MODULE_SOURCE+=UTCTime.c
ASN_MODULE_HEADER+=VisibleString.h
ASN_MODULE_SOURCE+=VisibleString.c
ASN_MODULE_HEADER+=asn_SEQUENCE_OF.h
ASN_MODULE_SOURCE+=asn_SEQUENCE_OF.c
ASN_MODULE_HEADER+=asn_SET_OF.h
ASN_MODULE_SOURCE+=asn_SET_OF.c
ASN_MODULE_HEADER+=constr_CHOICE.h
ASN_MODULE_SOURCE+=constr_CHOICE.c
ASN_MODULE_HEADER+=constr_SEQUENCE.h
ASN_MODULE_SOURCE+=constr_SEQUENCE.c
ASN_MODULE_HEADER+=constr_SEQUENCE_OF.h
ASN_MODULE_SOURCE+=constr_SEQUENCE_OF.c
ASN_MODULE_HEADER+=constr_SET_OF.h
ASN_MODULE_SOURCE+=constr_SET_OF.c
ASN_MODULE_HEADER+=asn_application.h
ASN_MODULE_HEADER+=asn_system.h
ASN_MODULE_HEADER+=asn_codecs.h
ASN_MODULE_HEADER+=asn_internal.h
ASN_MODULE_HEADER+=OCTET_STRING.h
ASN_MODULE_SOURCE+=OCTET_STRING.c
ASN_MODULE_HEADER+=BIT_STRING.h
ASN_MODULE_SOURCE+=BIT_STRING.c
ASN_MODULE_SOURCE+=asn_codecs_prim.c
ASN_MODULE_HEADER+=asn_codecs_prim.h
ASN_MODULE_HEADER+=ber_tlv_length.h
ASN_MODULE_SOURCE+=ber_tlv_length.c
ASN_MODULE_HEADER+=ber_tlv_tag.h
ASN_MODULE_SOURCE+=ber_tlv_tag.c
ASN_MODULE_HEADER+=ber_decoder.h
ASN_MODULE_SOURCE+=ber_decoder.c
ASN_MODULE_HEADER+=der_encoder.h
ASN_MODULE_SOURCE+=der_encoder.c
ASN_MODULE_HEADER+=constr_TYPE.h
ASN_MODULE_SOURCE+=constr_TYPE.c
ASN_MODULE_HEADER+=constraints.h
ASN_MODULE_SOURCE+=constraints.c
ASN_MODULE_HEADER+=xer_support.h
ASN_MODULE_SOURCE+=xer_support.c
ASN_MODULE_HEADER+=xer_decoder.h
ASN_MODULE_SOURCE+=xer_decoder.c
ASN_MODULE_HEADER+=xer_encoder.h
ASN_MODULE_SOURCE+=xer_encoder.c
ASN_MODULE_HEADER+=per_support.h
ASN_MODULE_SOURCE+=per_support.c
ASN_MODULE_HEADER+=per_decoder.h
ASN_MODULE_SOURCE+=per_decoder.c
ASN_MODULE_HEADER+=per_encoder.h
ASN_MODULE_SOURCE+=per_encoder.c
ASN_MODULE_HEADER+=per_opentype.h
ASN_MODULE_SOURCE+=per_opentype.c

BUILT_SOURCES = asn1.stamp
CLEANFILES = asn1.stamp

EXTRA_DIST = asn1c-files.tgz

ASN_MODULE_OBJS = $(ASN_MODULE_SOURCE:.c=.o)

DIST = Makefile asn1c-files.tgz

ifeq ($(strip $(CONF_PRECOMPILED_ASN)),yes)
ASN1 = asn1-precompiled.stamp
else
ASN1 = asn1.stamp
endif

all: $(ASN1)
	$(MAKE) libs

libs: CFLAGS += $(CONF_ASN_CFLAGS) -I. -fPIC

libs: libasnsupl.a libasnsupl.so

libasnsupl.a: $(ASN_MODULE_OBJS)
	ar rc $@ $(ASN_MODULE_OBJS)

libasnsupl.so: libasnsupl.so.1.0
	ln -sf libasnsupl.so.1 libasnsupl.so

libasnsupl.so.1.0: $(ASN_MODULE_OBJS)
	$(CC) -shared -Wl,-soname,libasnsupl.so.1 -o $@ $^
	ln -sf libasnsupl.so.1.0 libasnsupl.so.1

asn1.stamp: $(ASN1_SOURCE)
	asn1c $(CONF_ASN1C_SKELETONS) -gen-PER $(ASN1_SOURCE)
	touch asn1.stamp

asn1-precompiled.stamp:
	tar xzf asn1c-files.tgz
	touch asn1-precompiled.stamp

asn1c-files.tgz:
	tar zhcf asn1c-files.tgz $(ASN_MODULE_SOURCE) $(ASN_MODULE_HEADER)

distfiles:
	echo $(addprefix src/asn-supl/,$(DIST)) >> $(TOP)/distfiles

clean:
	/bin/rm -f *.o lib*.so* lib*.a *.c *.h *~ *.stamp Makefile.am.sample

.PHONY: clean distfiles asn1c-files.tgz
