2014-12-01 10:34:45 +01:00
|
|
|
LIBIEC_HOME=.
|
|
|
|
|
|
|
|
include make/target_system.mk
|
|
|
|
|
|
|
|
LIB_SOURCE_DIRS = src/mms/iso_acse
|
|
|
|
LIB_SOURCE_DIRS += src/mms/iso_acse/asn1c
|
|
|
|
LIB_SOURCE_DIRS += src/mms/iso_presentation/asn1c
|
|
|
|
LIB_SOURCE_DIRS += src/mms/iso_presentation
|
|
|
|
LIB_SOURCE_DIRS += src/mms/iso_session
|
|
|
|
LIB_SOURCE_DIRS += src/common
|
|
|
|
LIB_SOURCE_DIRS += src/mms/asn1
|
|
|
|
LIB_SOURCE_DIRS += src/mms/iso_cotp
|
|
|
|
LIB_SOURCE_DIRS += src/mms/iso_mms/server
|
|
|
|
LIB_SOURCE_DIRS += src/mms/iso_mms/client
|
2014-12-01 10:47:22 +01:00
|
|
|
LIB_SOURCE_DIRS += src/mms/iso_client
|
2014-12-01 10:34:45 +01:00
|
|
|
LIB_SOURCE_DIRS += src/mms/iso_common
|
|
|
|
LIB_SOURCE_DIRS += src/mms/iso_mms/common
|
|
|
|
LIB_SOURCE_DIRS += src/mms/iso_mms/asn1c
|
|
|
|
LIB_SOURCE_DIRS += src/mms/iso_server
|
2016-05-10 17:39:51 +02:00
|
|
|
|
|
|
|
LIB_SOURCE_DIRS += src/logging
|
|
|
|
|
2014-12-01 10:34:45 +01:00
|
|
|
ifndef EXCLUDE_ETHERNET_WINDOWS
|
|
|
|
LIB_SOURCE_DIRS += src/goose
|
2015-11-13 17:48:19 +01:00
|
|
|
LIB_SOURCE_DIRS += src/sampled_values
|
2014-12-01 10:34:45 +01:00
|
|
|
endif
|
2014-12-01 10:47:22 +01:00
|
|
|
LIB_SOURCE_DIRS += src/iec61850/client
|
|
|
|
LIB_SOURCE_DIRS += src/iec61850/common
|
|
|
|
LIB_SOURCE_DIRS += src/iec61850/server
|
|
|
|
LIB_SOURCE_DIRS += src/iec61850/server/model
|
|
|
|
LIB_SOURCE_DIRS += src/iec61850/server/mms_mapping
|
|
|
|
LIB_SOURCE_DIRS += src/iec61850/server/impl
|
2014-12-01 10:34:45 +01:00
|
|
|
ifeq ($(HAL_IMPL), WIN32)
|
|
|
|
LIB_SOURCE_DIRS += src/hal/socket/win32
|
|
|
|
LIB_SOURCE_DIRS += src/hal/thread/win32
|
|
|
|
LIB_SOURCE_DIRS += src/hal/ethernet/win32
|
|
|
|
LIB_SOURCE_DIRS += src/hal/filesystem/win32
|
|
|
|
LIB_SOURCE_DIRS += src/hal/time/win32
|
|
|
|
else ifeq ($(HAL_IMPL), POSIX)
|
|
|
|
LIB_SOURCE_DIRS += src/hal/socket/linux
|
|
|
|
LIB_SOURCE_DIRS += src/hal/thread/linux
|
|
|
|
LIB_SOURCE_DIRS += src/hal/ethernet/linux
|
|
|
|
LIB_SOURCE_DIRS += src/hal/filesystem/linux
|
|
|
|
LIB_SOURCE_DIRS += src/hal/time/unix
|
|
|
|
else ifeq ($(HAL_IMPL), BSD)
|
|
|
|
LIB_SOURCE_DIRS += src/hal/socket/bsd
|
2016-06-11 20:05:26 +02:00
|
|
|
LIB_SOURCE_DIRS += src/hal/thread/bsd
|
2014-12-01 10:34:45 +01:00
|
|
|
LIB_SOURCE_DIRS += src/hal/ethernet/bsd
|
|
|
|
LIB_SOURCE_DIRS += src/hal/filesystem/linux
|
|
|
|
LIB_SOURCE_DIRS += src/hal/time/unix
|
|
|
|
endif
|
2015-11-13 17:48:19 +01:00
|
|
|
LIB_INCLUDE_DIRS += config
|
2014-12-01 10:47:22 +01:00
|
|
|
LIB_INCLUDE_DIRS += src/common/inc
|
|
|
|
LIB_INCLUDE_DIRS += src/mms/iso_mms/asn1c
|
|
|
|
LIB_INCLUDE_DIRS += src/mms/inc
|
2015-11-13 17:48:19 +01:00
|
|
|
LIB_INCLUDE_DIRS += src/mms/inc_private
|
|
|
|
LIB_INCLUDE_DIRS += src/hal/inc
|
|
|
|
LIB_INCLUDE_DIRS += src/goose
|
|
|
|
LIB_INCLUDE_DIRS += src/sampled_values
|
2014-12-01 10:47:22 +01:00
|
|
|
LIB_INCLUDE_DIRS += src/iec61850/inc
|
|
|
|
LIB_INCLUDE_DIRS += src/iec61850/inc_private
|
2016-05-16 23:35:33 +02:00
|
|
|
LIB_INCLUDE_DIRS += src/logging
|
2014-12-01 10:34:45 +01:00
|
|
|
ifeq ($(HAL_IMPL), WIN32)
|
|
|
|
LIB_INCLUDE_DIRS += third_party/winpcap/Include
|
|
|
|
endif
|
|
|
|
|
|
|
|
LIB_INCLUDES = $(addprefix -I,$(LIB_INCLUDE_DIRS))
|
|
|
|
|
|
|
|
ifndef INSTALL_PREFIX
|
|
|
|
INSTALL_PREFIX = ./.install
|
|
|
|
endif
|
|
|
|
|
2014-12-01 10:47:22 +01:00
|
|
|
LIB_API_HEADER_FILES = src/hal/inc/hal_time.h
|
|
|
|
LIB_API_HEADER_FILES += src/hal/inc/hal_thread.h
|
|
|
|
LIB_API_HEADER_FILES += src/hal/inc/hal_filesystem.h
|
|
|
|
LIB_API_HEADER_FILES += src/common/inc/libiec61850_common_api.h
|
|
|
|
LIB_API_HEADER_FILES += src/common/inc/linked_list.h
|
|
|
|
LIB_API_HEADER_FILES += src/common/inc/byte_buffer.h
|
|
|
|
LIB_API_HEADER_FILES += src/common/inc/lib_memory.h
|
|
|
|
LIB_API_HEADER_FILES += src/iec61850/inc/iec61850_client.h
|
|
|
|
LIB_API_HEADER_FILES += src/iec61850/inc/iec61850_common.h
|
|
|
|
LIB_API_HEADER_FILES += src/iec61850/inc/iec61850_server.h
|
|
|
|
LIB_API_HEADER_FILES += src/iec61850/inc/iec61850_model.h
|
|
|
|
LIB_API_HEADER_FILES += src/iec61850/inc/iec61850_cdc.h
|
|
|
|
LIB_API_HEADER_FILES += src/iec61850/inc/iec61850_dynamic_model.h
|
|
|
|
LIB_API_HEADER_FILES += src/iec61850/inc/iec61850_config_file_parser.h
|
|
|
|
LIB_API_HEADER_FILES += src/mms/inc/mms_value.h
|
|
|
|
LIB_API_HEADER_FILES += src/mms/inc/mms_common.h
|
|
|
|
LIB_API_HEADER_FILES += src/mms/inc/mms_types.h
|
|
|
|
LIB_API_HEADER_FILES += src/mms/inc/mms_device_model.h
|
|
|
|
LIB_API_HEADER_FILES += src/mms/inc/mms_server.h
|
|
|
|
LIB_API_HEADER_FILES += src/mms/inc/mms_named_variable_list.h
|
|
|
|
LIB_API_HEADER_FILES += src/mms/inc/mms_type_spec.h
|
|
|
|
LIB_API_HEADER_FILES += src/mms/inc/mms_client_connection.h
|
|
|
|
LIB_API_HEADER_FILES += src/mms/inc/iso_connection_parameters.h
|
|
|
|
LIB_API_HEADER_FILES += src/mms/inc/iso_server.h
|
|
|
|
LIB_API_HEADER_FILES += src/mms/inc/ber_integer.h
|
|
|
|
LIB_API_HEADER_FILES += src/mms/inc/asn1_ber_primitive_value.h
|
2014-12-01 10:34:45 +01:00
|
|
|
LIB_API_HEADER_FILES += src/goose/goose_subscriber.h
|
2014-12-01 10:47:22 +01:00
|
|
|
LIB_API_HEADER_FILES += src/goose/goose_receiver.h
|
2016-02-04 14:59:38 +01:00
|
|
|
LIB_API_HEADER_FILES += src/goose/goose_publisher.h
|
2015-11-13 17:48:19 +01:00
|
|
|
LIB_API_HEADER_FILES += src/sampled_values/sv_subscriber.h
|
2016-02-04 14:59:38 +01:00
|
|
|
LIB_API_HEADER_FILES += src/sampled_values/sv_publisher.h
|
2016-05-16 23:35:33 +02:00
|
|
|
LIB_API_HEADER_FILES += src/logging/logging_api.h
|
2014-12-01 10:34:45 +01:00
|
|
|
|
|
|
|
get_sources_from_directory = $(wildcard $1/*.c)
|
|
|
|
get_sources = $(foreach dir, $1, $(call get_sources_from_directory,$(dir)))
|
|
|
|
src_to = $(addprefix $(LIB_OBJS_DIR)/,$(subst .c,$1,$2))
|
|
|
|
|
|
|
|
LIB_SOURCES = $(call get_sources,$(LIB_SOURCE_DIRS))
|
|
|
|
|
|
|
|
LIB_OBJS = $(call src_to,.o,$(LIB_SOURCES))
|
|
|
|
|
|
|
|
CFLAGS += -std=gnu99
|
|
|
|
#CFLAGS += -Wno-error=format
|
2015-02-25 14:28:57 +01:00
|
|
|
CFLAGS += -Wstrict-prototypes
|
|
|
|
|
|
|
|
ifneq ($(HAL_IMPL), WIN32)
|
2014-12-01 10:34:45 +01:00
|
|
|
CFLAGS += -Wuninitialized
|
2015-02-25 14:28:57 +01:00
|
|
|
endif
|
|
|
|
|
2014-12-01 10:34:45 +01:00
|
|
|
CFLAGS += -Wsign-compare
|
|
|
|
CFLAGS += -Wpointer-arith
|
|
|
|
CFLAGS += -Wnested-externs
|
|
|
|
CFLAGS += -Wmissing-declarations
|
|
|
|
CFLAGS += -Wshadow
|
|
|
|
CFLAGS += -Wall
|
|
|
|
#CFLAGS += -Werror
|
|
|
|
|
|
|
|
all: lib
|
|
|
|
|
|
|
|
static_checks: lib
|
|
|
|
splint -preproc +posixlib +skip-sys-headers +gnuextensions $(LIB_INCLUDES) $(LIB_SOURCES)
|
|
|
|
|
|
|
|
cppcheck: lib
|
|
|
|
cppcheck --force --std=c99 --enable=all $(LIB_INCLUDES) $(LIB_SOURCES) 2> cppcheck-output.xml
|
|
|
|
|
|
|
|
lib: $(LIB_NAME)
|
|
|
|
|
|
|
|
dynlib: CFLAGS += -fPIC
|
|
|
|
|
|
|
|
dynlib: $(DYN_LIB_NAME)
|
|
|
|
|
|
|
|
.PHONY: examples
|
|
|
|
|
|
|
|
examples:
|
|
|
|
cd examples; $(MAKE)
|
|
|
|
|
|
|
|
$(LIB_NAME): $(LIB_OBJS)
|
|
|
|
$(AR) r $(LIB_NAME) $(LIB_OBJS)
|
|
|
|
$(RANLIB) $(LIB_NAME)
|
|
|
|
|
|
|
|
$(DYN_LIB_NAME): $(LIB_OBJS)
|
|
|
|
$(CC) $(LDFLAGS) $(DYNLIB_LDFLAGS) -shared -o $(DYN_LIB_NAME) $(LIB_OBJS) $(LDLIBS)
|
|
|
|
|
|
|
|
$(LIB_OBJS_DIR)/%.o: %.c config
|
|
|
|
@echo compiling $(notdir $<)
|
|
|
|
$(SILENCE)mkdir -p $(dir $@)
|
|
|
|
$(CC) $(CFLAGS) -c $(LIB_INCLUDES) $(OUTPUT_OPTION) $<
|
|
|
|
|
|
|
|
install: $(LIB_NAME)
|
|
|
|
mkdir -p $(INSTALL_PREFIX)/include
|
|
|
|
mkdir -p $(INSTALL_PREFIX)/lib
|
|
|
|
cp $(LIB_API_HEADER_FILES) $(INSTALL_PREFIX)/include
|
|
|
|
cp $(LIB_NAME) $(INSTALL_PREFIX)/lib
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -f $(EXAMPLES)
|
|
|
|
rm -rf $(LIB_OBJS_DIR)
|
|
|
|
|