From e7a49d79eed1a709d74bb0510f8f2e8776806644 Mon Sep 17 00:00:00 2001 From: skarg Date: Thu, 23 Aug 2007 18:56:38 +0000 Subject: [PATCH] Converted the linux build to use BACnet library. Moved some BACnet address functions to bacaddr.c/h. --- bacnet-stack/Makefile | 24 +++--- bacnet-stack/address.c | 34 ++------- bacnet-stack/address.h | 2 - bacnet-stack/bacaddr.h | 1 - bacnet-stack/demo/dcc/Makefile | 101 ++++++++----------------- bacnet-stack/demo/epics/Makefile | 102 ++++++++----------------- bacnet-stack/demo/readfile/Makefile | 102 ++++++++----------------- bacnet-stack/demo/readprop/Makefile | 105 +++++++++----------------- bacnet-stack/demo/reinit/Makefile | 107 +++++++++----------------- bacnet-stack/demo/server/Makefile | 104 +++++++------------------- bacnet-stack/demo/timesync/Makefile | 107 +++++++++----------------- bacnet-stack/demo/ucov/Makefile | 102 +++++++++---------------- bacnet-stack/demo/whohas/Makefile | 108 +++++++++------------------ bacnet-stack/demo/whois/Makefile | 104 ++++++++------------------ bacnet-stack/demo/writefile/Makefile | 104 +++++++++----------------- bacnet-stack/demo/writeprop/Makefile | 104 +++++++++----------------- bacnet-stack/ports/linux/dlmstp.c | 40 +++------- bacnet-stack/ports/win32/dlmstp.c | 48 +----------- bacnet-stack/tsm.c | 5 +- 19 files changed, 432 insertions(+), 972 deletions(-) diff --git a/bacnet-stack/Makefile b/bacnet-stack/Makefile index 75255597..b57a3578 100644 --- a/bacnet-stack/Makefile +++ b/bacnet-stack/Makefile @@ -29,37 +29,37 @@ clean: \ ( cd demo/epics ; make clean ) readprop: demo/readprop/Makefile - ( cd demo/readprop ; make clean ; make ; cp bacrp ../../utils ) + ( cd demo/readprop ; make ; cp bacrp ../../utils ) writeprop: demo/writeprop/Makefile - ( cd demo/writeprop ; make clean ; make ; cp bacwp ../../utils ) + ( cd demo/writeprop ; make ; cp bacwp ../../utils ) readfile: demo/readfile/Makefile - ( cd demo/readfile ; make clean ; make ; cp bacarf ../../utils ) + ( cd demo/readfile ; make ; cp bacarf ../../utils ) writefile: demo/writefile/Makefile - ( cd demo/writefile ; make clean ; make ; cp bacawf ../../utils ) + ( cd demo/writefile ; make ; cp bacawf ../../utils ) reinit: demo/reinit/Makefile - ( cd demo/reinit ; make clean ; make ; cp bacrd ../../utils ) + ( cd demo/reinit ; make ; cp bacrd ../../utils ) server: demo/server/Makefile - ( cd demo/server ; make clean ; make ; cp bacserv ../../utils ) + ( cd demo/server ; make ; cp bacserv ../../utils ) dcc: demo/dcc/Makefile - ( cd demo/dcc ; make clean ; make ; cp bacdcc ../../utils ) + ( cd demo/dcc ; make ; cp bacdcc ../../utils ) whohas: demo/whohas/Makefile - ( cd demo/whohas ; make clean ; make ; cp bacwh ../../utils ) + ( cd demo/whohas ; make ; cp bacwh ../../utils ) timesync: demo/timesync/Makefile - ( cd demo/timesync ; make clean ; make ; cp bacts ../../utils ) + ( cd demo/timesync ; make ; cp bacts ../../utils ) epics: demo/epics/Makefile - ( cd demo/epics ; make clean ; make ; cp bacepics ../../utils ) + ( cd demo/epics ; make ; cp bacepics ../../utils ) ucov: demo/ucov/Makefile - ( cd demo/ucov ; make clean ; make ; cp bacucov ../../utils ) + ( cd demo/ucov ; make ; cp bacucov ../../utils ) whois: demo/whois/Makefile - ( cd demo/whois ; make clean ; make ; cp bacwi ../../utils ) + ( cd demo/whois ; make ; cp bacwi ../../utils ) diff --git a/bacnet-stack/address.c b/bacnet-stack/address.c index e6755105..94647d68 100644 --- a/bacnet-stack/address.c +++ b/bacnet-stack/address.c @@ -36,6 +36,7 @@ #include #include #include "config.h" +#include "bacaddr.h" #include "address.h" #include "bacdef.h" #include "bacdcode.h" @@ -52,25 +53,6 @@ static struct Address_Cache_Entry { BACNET_ADDRESS address; } Address_Cache[MAX_ADDRESS_CACHE]; -void address_copy(BACNET_ADDRESS * dest, BACNET_ADDRESS * src) -{ - unsigned i = 0; /* counter */ - - if (dest && src) { - for (i = 0; i < MAX_MAC_LEN; i++) { - dest->mac[i] = src->mac[i]; - } - dest->mac_len = src->mac_len; - dest->net = src->net; - dest->len = src->len; - for (i = 0; i < MAX_MAC_LEN; i++) { - dest->adr[i] = src->adr[i]; - } - } - - return; -} - void address_remove_device(uint32_t device_id) { unsigned i; @@ -108,7 +90,7 @@ bool address_get_by_device(uint32_t device_id, for (i = 0; i < MAX_ADDRESS_CACHE; i++) { if (Address_Cache[i].valid && (Address_Cache[i].device_id == device_id)) { - address_copy(src, &Address_Cache[i].address); + bacnet_address_copy(src, &Address_Cache[i].address); *max_apdu = Address_Cache[i].max_apdu; found = true; break; @@ -128,7 +110,7 @@ void address_add(uint32_t device_id, for (i = 0; i < MAX_ADDRESS_CACHE; i++) { if (Address_Cache[i].valid && (Address_Cache[i].device_id == device_id)) { - address_copy(&Address_Cache[i].address, src); + bacnet_address_copy(&Address_Cache[i].address, src); Address_Cache[i].max_apdu = max_apdu; found = true; break; @@ -141,7 +123,7 @@ void address_add(uint32_t device_id, Address_Cache[i].valid = true; Address_Cache[i].device_id = device_id; Address_Cache[i].max_apdu = max_apdu; - address_copy(&Address_Cache[i].address, src); + bacnet_address_copy(&Address_Cache[i].address, src); break; } } @@ -163,7 +145,7 @@ bool address_bind_request(uint32_t device_id, if (Address_Cache[i].valid && (Address_Cache[i].device_id == device_id)) { found = true; - address_copy(src, &Address_Cache[i].address); + bacnet_address_copy(src, &Address_Cache[i].address); *max_apdu = Address_Cache[i].max_apdu; break; } @@ -198,7 +180,7 @@ void address_add_binding(uint32_t device_id, for (i = 0; i < MAX_ADDRESS_CACHE; i++) { if (Address_Cache[i].valid && (Address_Cache[i].device_id == device_id)) { - address_copy(&Address_Cache[i].address, src); + bacnet_address_copy(&Address_Cache[i].address, src); Address_Cache[i].max_apdu = max_apdu; found = true; break; @@ -212,7 +194,7 @@ void address_add_binding(uint32_t device_id, Address_Cache[i].bind_request = false; Address_Cache[i].device_id = device_id; Address_Cache[i].max_apdu = max_apdu; - address_copy(&Address_Cache[i].address, src); + bacnet_address_copy(&Address_Cache[i].address, src); break; } } @@ -228,7 +210,7 @@ bool address_get_by_index(unsigned index, if (index < MAX_ADDRESS_CACHE) { if (Address_Cache[index].valid) { - address_copy(src, &Address_Cache[index].address); + bacnet_address_copy(src, &Address_Cache[index].address); *device_id = Address_Cache[index].device_id; *max_apdu = Address_Cache[index].max_apdu; found = true; diff --git a/bacnet-stack/address.h b/bacnet-stack/address.h index 7c5fd3e4..2cb54f88 100644 --- a/bacnet-stack/address.h +++ b/bacnet-stack/address.h @@ -45,8 +45,6 @@ extern "C" { void address_init(void); - void address_copy(BACNET_ADDRESS * dest, BACNET_ADDRESS * src); - void address_add(uint32_t device_id, unsigned max_apdu, BACNET_ADDRESS * src); diff --git a/bacnet-stack/bacaddr.h b/bacnet-stack/bacaddr.h index 17410ce4..b73405f4 100644 --- a/bacnet-stack/bacaddr.h +++ b/bacnet-stack/bacaddr.h @@ -50,4 +50,3 @@ extern "C" { } #endif /* __cplusplus */ #endif - \ No newline at end of file diff --git a/bacnet-stack/demo/dcc/Makefile b/bacnet-stack/demo/dcc/Makefile index 424d91c6..5679ea16 100644 --- a/bacnet-stack/demo/dcc/Makefile +++ b/bacnet-stack/demo/dcc/Makefile @@ -1,93 +1,56 @@ #Makefile to build BACnet Application for the Linux Port CC = gcc -BASEDIR = . -#CFLAGS = -Wall -I. -# -g for debugging with gdb -#CFLAGS = -Wall -I. -O2 -g -# Note: you can strip out symbols using the strip command -# to get an idea of how big the compile really is. -BACNET_DEFINES=-DBACFILE -DPRINT_ENABLED=1 -#BACDL_DEFINE=-DBACDL_ETHERNET=1 -#BACDL_DEFINE=-DBACDL_ARCNET=1 -BACDL_DEFINE=-DBACDL_BIP +TARGET = bacdcc + +# Configure the BACnet Datalink Layer +#BACDL_DEFINE = -DBACDL_ETHERNET=1 +#BACDL_DEFINE = -DBACDL_ARCNET=1 +#BACDL_DEFINE = -DBACDL_MSTP=1 +BACDL_DEFINE = -DBACDL_BIP=1 +BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1 DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE) +# Directories BACNET_PORT = ../../ports/linux BACNET_OBJECT = ../object BACNET_HANDLER = ../handler BACNET_ROOT = ../.. -INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +# BACnet Library +BACNET_LIB_DIR = ../../lib +BACNET_LIB_NAME = bacnet +BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a +# Compiler Setup +INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) -TARGET = bacdcc - -SRCS = main.c \ - $(BACNET_ROOT)/dcc.c \ - $(BACNET_PORT)/arcnet.c \ - $(BACNET_PORT)/ethernet.c \ - $(BACNET_PORT)/bip-init.c \ - $(BACNET_ROOT)/bip.c \ - $(BACNET_HANDLER)/txbuf.c \ - $(BACNET_HANDLER)/noserv.c \ - $(BACNET_HANDLER)/h_whois.c \ - $(BACNET_HANDLER)/h_rp.c \ - $(BACNET_HANDLER)/h_iam.c \ - $(BACNET_HANDLER)/h_dcc.c \ - $(BACNET_HANDLER)/s_whois.c \ - $(BACNET_HANDLER)/s_dcc.c \ - $(BACNET_OBJECT)/device.c \ - $(BACNET_OBJECT)/ai.c \ - $(BACNET_OBJECT)/ao.c \ - $(BACNET_OBJECT)/av.c \ - $(BACNET_OBJECT)/bi.c \ - $(BACNET_OBJECT)/bo.c \ - $(BACNET_OBJECT)/bv.c \ - $(BACNET_OBJECT)/lc.c \ - $(BACNET_OBJECT)/lsp.c \ - $(BACNET_OBJECT)/mso.c \ - $(BACNET_OBJECT)/bacfile.c \ - $(BACNET_ROOT)/filename.c \ - $(BACNET_ROOT)/rp.c \ - $(BACNET_ROOT)/wp.c \ - $(BACNET_ROOT)/bacdcode.c \ - $(BACNET_ROOT)/bacint.c \ - $(BACNET_ROOT)/bacapp.c \ - $(BACNET_ROOT)/bacprop.c \ - $(BACNET_ROOT)/bacstr.c \ - $(BACNET_ROOT)/bactext.c \ - $(BACNET_ROOT)/datetime.c \ - $(BACNET_ROOT)/indtext.c \ - $(BACNET_ROOT)/bigend.c \ - $(BACNET_ROOT)/whois.c \ - $(BACNET_ROOT)/iam.c \ - $(BACNET_ROOT)/tsm.c \ - $(BACNET_ROOT)/address.c \ - $(BACNET_ROOT)/arf.c \ - $(BACNET_ROOT)/abort.c \ - $(BACNET_ROOT)/reject.c \ - $(BACNET_ROOT)/bacerror.c \ - $(BACNET_ROOT)/apdu.c \ - $(BACNET_ROOT)/npdu.c \ - $(BACNET_ROOT)/version.c +SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${TARGET} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET} + size ${TARGET} + +${TARGET}: ${OBJS} Makefile + ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ + +lib: ${BACNET_LIB_TARGET} + +${BACNET_LIB_TARGET}: + ( cd ${BACNET_LIB_DIR} ; make clean ; make ) .c.o: ${CC} -c ${CFLAGS} $*.c -o $@ - + depend: rm -f .depend ${CC} -MM ${CFLAGS} *.c >> .depend - + clean: - rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini + rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/demo/epics/Makefile b/bacnet-stack/demo/epics/Makefile index 65810edb..a410914a 100644 --- a/bacnet-stack/demo/epics/Makefile +++ b/bacnet-stack/demo/epics/Makefile @@ -1,92 +1,56 @@ #Makefile to build BACnet Application for the Linux Port CC = gcc -BASEDIR = . -#CFLAGS = -Wall -I. -# -g for debugging with gdb -#CFLAGS = -Wall -I. -O2 -g -# Note: you can strip out symbols using the strip command -# to get an idea of how big the compile really is. -BACNET_DEFINES= -DPRINT_ENABLED=1 -#BACDL_DEFINE=-DBACDL_ETHERNET=1 -#BACDL_DEFINE=-DBACDL_ARCNET=1 -BACDL_DEFINE=-DBACDL_BIP=1 +TARGET = bacepics + +# Configure the BACnet Datalink Layer +#BACDL_DEFINE = -DBACDL_ETHERNET=1 +#BACDL_DEFINE = -DBACDL_ARCNET=1 +#BACDL_DEFINE = -DBACDL_MSTP=1 +BACDL_DEFINE = -DBACDL_BIP=1 +BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1 DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE) +# Directories BACNET_PORT = ../../ports/linux BACNET_OBJECT = ../object BACNET_HANDLER = ../handler BACNET_ROOT = ../.. -INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) - -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) - -TARGET = bacepics +# BACnet Library +BACNET_LIB_DIR = ../../lib +BACNET_LIB_NAME = bacnet +BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a +# Compiler Setup +INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) SRCS = main.c \ - $(BACNET_PORT)/bip-init.c \ - $(BACNET_PORT)/ethernet.c \ - $(BACNET_PORT)/arcnet.c \ - $(BACNET_ROOT)/bip.c \ - $(BACNET_ROOT)/key.c \ - $(BACNET_ROOT)/keylist.c \ - $(BACNET_HANDLER)/txbuf.c \ - $(BACNET_HANDLER)/noserv.c \ - $(BACNET_HANDLER)/h_whois.c \ - $(BACNET_HANDLER)/h_rp.c \ - $(BACNET_HANDLER)/h_iam.c \ - $(BACNET_HANDLER)/s_rp.c \ - $(BACNET_HANDLER)/s_whois.c \ - $(BACNET_OBJECT)/device.c \ - $(BACNET_OBJECT)/ai.c \ - $(BACNET_OBJECT)/ao.c \ - $(BACNET_OBJECT)/av.c \ - $(BACNET_OBJECT)/bi.c \ - $(BACNET_OBJECT)/bo.c \ - $(BACNET_OBJECT)/bv.c \ - $(BACNET_OBJECT)/lc.c \ - $(BACNET_OBJECT)/lsp.c \ - $(BACNET_OBJECT)/mso.c \ - $(BACNET_OBJECT)/bacfile.c \ - $(BACNET_ROOT)/filename.c \ - $(BACNET_ROOT)/rp.c \ - $(BACNET_ROOT)/bacdcode.c \ - $(BACNET_ROOT)/bacint.c \ - $(BACNET_ROOT)/bacapp.c \ - $(BACNET_ROOT)/bacprop.c \ - $(BACNET_ROOT)/datetime.c \ - $(BACNET_ROOT)/bacstr.c \ - $(BACNET_ROOT)/bactext.c \ - $(BACNET_ROOT)/indtext.c \ - $(BACNET_ROOT)/bigend.c \ - $(BACNET_ROOT)/whois.c \ - $(BACNET_ROOT)/iam.c \ - $(BACNET_ROOT)/tsm.c \ - $(BACNET_ROOT)/address.c \ - $(BACNET_ROOT)/arf.c \ - $(BACNET_ROOT)/dcc.c \ - $(BACNET_ROOT)/abort.c \ - $(BACNET_ROOT)/reject.c \ - $(BACNET_ROOT)/bacerror.c \ - $(BACNET_ROOT)/apdu.c \ - $(BACNET_ROOT)/npdu.c \ - $(BACNET_ROOT)/version.c + $(BACNET_ROOT)/key.c \ + $(BACNET_ROOT)/keylist.c OBJS = ${SRCS:.c=.o} -all: ${TARGET} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET} + size ${TARGET} + +${TARGET}: ${OBJS} Makefile + ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ + +lib: ${BACNET_LIB_TARGET} + +${BACNET_LIB_TARGET}: + ( cd ${BACNET_LIB_DIR} ; make clean ; make ) .c.o: ${CC} -c ${CFLAGS} $*.c -o $@ - + depend: rm -f .depend ${CC} -MM ${CFLAGS} *.c >> .depend - + clean: - rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini + rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/demo/readfile/Makefile b/bacnet-stack/demo/readfile/Makefile index 5542e538..56605c75 100644 --- a/bacnet-stack/demo/readfile/Makefile +++ b/bacnet-stack/demo/readfile/Makefile @@ -1,90 +1,54 @@ #Makefile to build BACnet Application for the Linux Port -CC = gcc -BASEDIR = . -#CFLAGS = -Wall -I. -# -g for debugging with gdb -#CFLAGS = -Wall -I. -O2 -g -# Note: you can strip out symbols using the strip command -# to get an idea of how big the compile really is. +CC = gcc -BACNET_DEFINES=-DPRINT_ENABLED=1 -#BACDL_DEFINE=-DBACDL_ETHERNET=1 -#BACDL_DEFINE=-DBACDL_ARCNET=1 -BACDL_DEFINE=-DBACDL_BIP=1 +TARGET = bacarf + +# Configure the BACnet Datalink Layer +#BACDL_DEFINE = -DBACDL_ETHERNET=1 +#BACDL_DEFINE = -DBACDL_ARCNET=1 +#BACDL_DEFINE = -DBACDL_MSTP=1 +BACDL_DEFINE = -DBACDL_BIP=1 +BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1 DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE) +# Directories BACNET_PORT = ../../ports/linux BACNET_OBJECT = ../object BACNET_HANDLER = ../handler BACNET_ROOT = ../.. -INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +# BACnet Library +BACNET_LIB_DIR = ../../lib +BACNET_LIB_NAME = bacnet +BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a +# Compiler Setup +INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) - -TARGET = bacarf - -SRCS = main.c \ - $(BACNET_PORT)/bip-init.c \ - $(BACNET_PORT)/ethernet.c \ - $(BACNET_PORT)/arcnet.c \ - $(BACNET_ROOT)/bip.c \ - $(BACNET_HANDLER)/txbuf.c \ - $(BACNET_HANDLER)/noserv.c \ - $(BACNET_HANDLER)/h_whois.c \ - $(BACNET_HANDLER)/s_whois.c \ - $(BACNET_HANDLER)/s_arfs.c \ - $(BACNET_HANDLER)/h_rp.c \ - $(BACNET_ROOT)/rp.c \ - $(BACNET_ROOT)/bacdcode.c \ - $(BACNET_ROOT)/bacint.c \ - $(BACNET_ROOT)/bacapp.c \ - $(BACNET_ROOT)/bacprop.c \ - $(BACNET_ROOT)/bacstr.c \ - $(BACNET_ROOT)/bactext.c \ - $(BACNET_ROOT)/indtext.c \ - $(BACNET_ROOT)/datetime.c \ - $(BACNET_ROOT)/bigend.c \ - $(BACNET_ROOT)/whois.c \ - $(BACNET_ROOT)/iam.c \ - $(BACNET_ROOT)/tsm.c \ - $(BACNET_ROOT)/address.c \ - $(BACNET_ROOT)/filename.c \ - $(BACNET_OBJECT)/device.c \ - $(BACNET_OBJECT)/ai.c \ - $(BACNET_OBJECT)/ao.c \ - $(BACNET_OBJECT)/av.c \ - $(BACNET_OBJECT)/bi.c \ - $(BACNET_OBJECT)/bo.c \ - $(BACNET_OBJECT)/bv.c \ - $(BACNET_OBJECT)/lc.c \ - $(BACNET_OBJECT)/lsp.c \ - $(BACNET_OBJECT)/mso.c \ - $(BACNET_OBJECT)/bacfile.c \ - $(BACNET_ROOT)/arf.c \ - $(BACNET_ROOT)/dcc.c \ - $(BACNET_ROOT)/abort.c \ - $(BACNET_ROOT)/reject.c \ - $(BACNET_ROOT)/bacerror.c \ - $(BACNET_ROOT)/apdu.c \ - $(BACNET_ROOT)/npdu.c \ - $(BACNET_ROOT)/version.c +SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${TARGET} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET} + size ${TARGET} + +${TARGET}: ${OBJS} Makefile + ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ + +lib: ${BACNET_LIB_TARGET} + +${BACNET_LIB_TARGET}: + ( cd ${BACNET_LIB_DIR} ; make clean ; make ) .c.o: ${CC} -c ${CFLAGS} $*.c -o $@ - + depend: rm -f .depend ${CC} -MM ${CFLAGS} *.c >> .depend - + clean: - rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini + rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} include: .depend - diff --git a/bacnet-stack/demo/readprop/Makefile b/bacnet-stack/demo/readprop/Makefile index d7e882f5..b3585870 100644 --- a/bacnet-stack/demo/readprop/Makefile +++ b/bacnet-stack/demo/readprop/Makefile @@ -1,92 +1,55 @@ #Makefile to build BACnet Application for the Linux Port -CC = gcc -BASEDIR = . -#CFLAGS = -Wall -I. -# -g for debugging with gdb -#CFLAGS = -Wall -I. -O2 -g -# Note: you can strip out symbols using the strip command -# to get an idea of how big the compile really is. +# Compiler to use +CC = gcc +# Executable file name +TARGET = bacrp -BACNET_DEFINES=-DPRINT_ENABLED=1 -#BACDL_DEFINE=-DBACDL_ETHERNET=1 -#BACDL_DEFINE=-DBACDL_ARCNET=1 -BACDL_DEFINE=-DBACDL_BIP=1 +# Configure the BACnet Datalink Layer +#BACDL_DEFINE = -DBACDL_ETHERNET=1 +#BACDL_DEFINE = -DBACDL_ARCNET=1 +#BACDL_DEFINE = -DBACDL_MSTP=1 +BACDL_DEFINE = -DBACDL_BIP=1 +BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1 DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE) +# Directories BACNET_PORT = ../../ports/linux BACNET_OBJECT = ../object BACNET_HANDLER = ../handler BACNET_ROOT = ../.. -INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +# BACnet Library +BACNET_LIB_DIR = ../../lib +BACNET_LIB_NAME = bacnet +BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a +# Compiler Setup +INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) - -TARGET = bacrp - -SRCS = main.c \ - $(BACNET_PORT)/bip-init.c \ - $(BACNET_PORT)/ethernet.c \ - $(BACNET_PORT)/arcnet.c \ - $(BACNET_ROOT)/bip.c \ - $(BACNET_HANDLER)/txbuf.c \ - $(BACNET_HANDLER)/noserv.c \ - $(BACNET_HANDLER)/h_whois.c \ - $(BACNET_HANDLER)/h_rp.c \ - $(BACNET_HANDLER)/h_iam.c \ - $(BACNET_HANDLER)/h_rp_a.c \ - $(BACNET_HANDLER)/s_rp.c \ - $(BACNET_HANDLER)/s_whois.c \ - $(BACNET_OBJECT)/device.c \ - $(BACNET_OBJECT)/ai.c \ - $(BACNET_OBJECT)/ao.c \ - $(BACNET_OBJECT)/av.c \ - $(BACNET_OBJECT)/bi.c \ - $(BACNET_OBJECT)/bo.c \ - $(BACNET_OBJECT)/bv.c \ - $(BACNET_OBJECT)/lc.c \ - $(BACNET_OBJECT)/lsp.c \ - $(BACNET_OBJECT)/mso.c \ - $(BACNET_OBJECT)/bacfile.c \ - $(BACNET_ROOT)/filename.c \ - $(BACNET_ROOT)/rp.c \ - $(BACNET_ROOT)/bacdcode.c \ - $(BACNET_ROOT)/bacint.c \ - $(BACNET_ROOT)/bacapp.c \ - $(BACNET_ROOT)/bacprop.c \ - $(BACNET_ROOT)/datetime.c \ - $(BACNET_ROOT)/bacstr.c \ - $(BACNET_ROOT)/bactext.c \ - $(BACNET_ROOT)/indtext.c \ - $(BACNET_ROOT)/bigend.c \ - $(BACNET_ROOT)/whois.c \ - $(BACNET_ROOT)/iam.c \ - $(BACNET_ROOT)/tsm.c \ - $(BACNET_ROOT)/address.c \ - $(BACNET_ROOT)/arf.c \ - $(BACNET_ROOT)/dcc.c \ - $(BACNET_ROOT)/abort.c \ - $(BACNET_ROOT)/reject.c \ - $(BACNET_ROOT)/bacerror.c \ - $(BACNET_ROOT)/apdu.c \ - $(BACNET_ROOT)/npdu.c \ - $(BACNET_ROOT)/version.c +SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${TARGET} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET} + size ${TARGET} + +${TARGET}: ${OBJS} Makefile + ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ + +lib: ${BACNET_LIB_TARGET} + +${BACNET_LIB_TARGET}: + ( cd ${BACNET_LIB_DIR} ; make clean ; make ) .c.o: ${CC} -c ${CFLAGS} $*.c -o $@ - + depend: rm -f .depend ${CC} -MM ${CFLAGS} *.c >> .depend - + clean: - rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini + rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} include: .depend - diff --git a/bacnet-stack/demo/reinit/Makefile b/bacnet-stack/demo/reinit/Makefile index 2115ed70..c6549336 100644 --- a/bacnet-stack/demo/reinit/Makefile +++ b/bacnet-stack/demo/reinit/Makefile @@ -1,93 +1,56 @@ #Makefile to build BACnet Application for the Linux Port -CC = gcc -BASEDIR = . -#CFLAGS = -Wall -I. -# -g for debugging with gdb -#CFLAGS = -Wall -I. -O2 -g -# Note: you can strip out symbols using the strip command -# to get an idea of how big the compile really is. -BACNET_DEFINES=-DPRINT_ENABLED=1 -#BACDL_DEFINE=-DBACDL_ETHERNET=1 -#BACDL_DEFINE=-DBACDL_ARCNET=1 -BACDL_DEFINE=-DBACDL_BIP=1 +# Compiler to use +CC = gcc +# Executable file name +TARGET = bacrd + +# Configure the BACnet Datalink Layer +#BACDL_DEFINE = -DBACDL_ETHERNET=1 +#BACDL_DEFINE = -DBACDL_ARCNET=1 +#BACDL_DEFINE = -DBACDL_MSTP=1 +BACDL_DEFINE = -DBACDL_BIP=1 +BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1 DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE) +# Directories BACNET_PORT = ../../ports/linux BACNET_OBJECT = ../object BACNET_HANDLER = ../handler BACNET_ROOT = ../.. -INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +# BACnet Library +BACNET_LIB_DIR = ../../lib +BACNET_LIB_NAME = bacnet +BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a +# Compiler Setup +INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) - -TARGET = bacrd - -SRCS = main.c \ - $(BACNET_ROOT)/rd.c \ - $(BACNET_PORT)/bip-init.c \ - $(BACNET_PORT)/ethernet.c \ - $(BACNET_PORT)/arcnet.c \ - $(BACNET_ROOT)/bip.c \ - $(BACNET_HANDLER)/txbuf.c \ - $(BACNET_HANDLER)/noserv.c \ - $(BACNET_HANDLER)/h_whois.c \ - $(BACNET_HANDLER)/h_rp.c \ - $(BACNET_HANDLER)/h_iam.c \ - $(BACNET_HANDLER)/s_whois.c \ - $(BACNET_HANDLER)/s_rd.c \ - $(BACNET_OBJECT)/device.c \ - $(BACNET_OBJECT)/ai.c \ - $(BACNET_OBJECT)/ao.c \ - $(BACNET_OBJECT)/av.c \ - $(BACNET_OBJECT)/bi.c \ - $(BACNET_OBJECT)/bo.c \ - $(BACNET_OBJECT)/bv.c \ - $(BACNET_OBJECT)/lc.c \ - $(BACNET_OBJECT)/lsp.c \ - $(BACNET_OBJECT)/mso.c \ - $(BACNET_OBJECT)/bacfile.c \ - $(BACNET_ROOT)/filename.c \ - $(BACNET_ROOT)/rp.c \ - $(BACNET_ROOT)/wp.c \ - $(BACNET_ROOT)/bacdcode.c \ - $(BACNET_ROOT)/bacint.c \ - $(BACNET_ROOT)/bacapp.c \ - $(BACNET_ROOT)/bacprop.c \ - $(BACNET_ROOT)/bacstr.c \ - $(BACNET_ROOT)/bactext.c \ - $(BACNET_ROOT)/datetime.c \ - $(BACNET_ROOT)/indtext.c \ - $(BACNET_ROOT)/bigend.c \ - $(BACNET_ROOT)/whois.c \ - $(BACNET_ROOT)/iam.c \ - $(BACNET_ROOT)/tsm.c \ - $(BACNET_ROOT)/address.c \ - $(BACNET_ROOT)/arf.c \ - $(BACNET_ROOT)/dcc.c \ - $(BACNET_ROOT)/abort.c \ - $(BACNET_ROOT)/reject.c \ - $(BACNET_ROOT)/bacerror.c \ - $(BACNET_ROOT)/apdu.c \ - $(BACNET_ROOT)/npdu.c \ - $(BACNET_ROOT)/version.c +SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${TARGET} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET} + size ${TARGET} + +${TARGET}: ${OBJS} Makefile + ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ + +lib: ${BACNET_LIB_TARGET} + +${BACNET_LIB_TARGET}: + ( cd ${BACNET_LIB_DIR} ; make clean ; make ) .c.o: ${CC} -c ${CFLAGS} $*.c -o $@ - + depend: rm -f .depend ${CC} -MM ${CFLAGS} *.c >> .depend - + clean: - rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini + rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} include: .depend - diff --git a/bacnet-stack/demo/server/Makefile b/bacnet-stack/demo/server/Makefile index ec3102d3..dd16e7c0 100644 --- a/bacnet-stack/demo/server/Makefile +++ b/bacnet-stack/demo/server/Makefile @@ -1,98 +1,47 @@ #Makefile to build BACnet Application for the Linux Port -CC = gcc -BASEDIR = . -#CFLAGS = -Wall -I. -# -g for debugging with gdb -#CFLAGS = -Wall -I. -O2 -g -# Note: you can strip out symbols using the strip command -# to get an idea of how big the compile really is. + +# Compiler to use +CC = gcc +# Executable file name +TARGET = bacserv # Configure the BACnet Datalink Layer #BACDL_DEFINE = -DBACDL_ETHERNET=1 #BACDL_DEFINE = -DBACDL_ARCNET=1 #BACDL_DEFINE = -DBACDL_MSTP=1 BACDL_DEFINE = -DBACDL_BIP=1 -DBIP_DEBUG -BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1 -DBIG_ENDIAN=0 +BACNET_DEFINES = -DPRINT_ENABLED=1 DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE) +# Directories BACNET_PORT = ../../ports/linux BACNET_OBJECT = ../object BACNET_HANDLER = ../handler BACNET_ROOT = ../.. +# BACnet Library +BACNET_LIB_DIR = ../../lib +BACNET_LIB_NAME = bacnet +BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a +# Compiler Setup INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) - -TARGET = bacserv - -SRCS = main.c \ - $(BACNET_PORT)/bip-init.c \ - $(BACNET_PORT)/ethernet.c \ - $(BACNET_PORT)/arcnet.c \ - $(BACNET_PORT)/dlmstp.c \ - $(BACNET_PORT)/rs485.c \ - $(BACNET_ROOT)/mstp.c \ - $(BACNET_ROOT)/crc.c \ - $(BACNET_ROOT)/bip.c \ - $(BACNET_HANDLER)/txbuf.c \ - $(BACNET_HANDLER)/noserv.c \ - $(BACNET_HANDLER)/h_whois.c \ - $(BACNET_HANDLER)/h_rp.c \ - $(BACNET_HANDLER)/h_rpm.c \ - $(BACNET_HANDLER)/h_wp.c \ - $(BACNET_HANDLER)/h_arf.c \ - $(BACNET_HANDLER)/h_awf.c \ - $(BACNET_HANDLER)/h_rd.c \ - $(BACNET_HANDLER)/h_dcc.c \ - $(BACNET_HANDLER)/h_ts.c \ - $(BACNET_HANDLER)/h_whohas.c \ - $(BACNET_HANDLER)/s_ihave.c \ - $(BACNET_OBJECT)/device.c \ - $(BACNET_OBJECT)/ai.c \ - $(BACNET_OBJECT)/ao.c \ - $(BACNET_OBJECT)/av.c \ - $(BACNET_OBJECT)/bi.c \ - $(BACNET_OBJECT)/bo.c \ - $(BACNET_OBJECT)/bv.c \ - $(BACNET_OBJECT)/lc.c \ - $(BACNET_OBJECT)/lsp.c \ - $(BACNET_OBJECT)/mso.c \ - $(BACNET_OBJECT)/bacfile.c \ - $(BACNET_ROOT)/filename.c \ - $(BACNET_ROOT)/bacdcode.c \ - $(BACNET_ROOT)/bacint.c \ - $(BACNET_ROOT)/bacapp.c \ - $(BACNET_ROOT)/bacprop.c \ - $(BACNET_ROOT)/bacstr.c \ - $(BACNET_ROOT)/bactext.c \ - $(BACNET_ROOT)/datetime.c \ - $(BACNET_ROOT)/indtext.c \ - $(BACNET_ROOT)/bigend.c \ - $(BACNET_ROOT)/whois.c \ - $(BACNET_ROOT)/iam.c \ - $(BACNET_ROOT)/whohas.c \ - $(BACNET_ROOT)/ihave.c \ - $(BACNET_ROOT)/rp.c \ - $(BACNET_ROOT)/rpm.c \ - $(BACNET_ROOT)/wp.c \ - $(BACNET_ROOT)/arf.c \ - $(BACNET_ROOT)/awf.c \ - $(BACNET_ROOT)/rd.c \ - $(BACNET_ROOT)/dcc.c \ - $(BACNET_ROOT)/timesync.c \ - $(BACNET_ROOT)/abort.c \ - $(BACNET_ROOT)/reject.c \ - $(BACNET_ROOT)/bacerror.c \ - $(BACNET_ROOT)/apdu.c \ - $(BACNET_ROOT)/npdu.c \ - $(BACNET_ROOT)/version.c +SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${TARGET} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET} + size ${TARGET} -${TARGET}: ${OBJS} - ${CC} -pthread -o $@ ${OBJS} +${TARGET}: ${OBJS} Makefile + ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ + +lib: ${BACNET_LIB_TARGET} + +${BACNET_LIB_TARGET}: + ( cd ${BACNET_LIB_DIR} ; make clean ; make ) .c.o: ${CC} -c ${CFLAGS} $*.c -o $@ @@ -102,7 +51,6 @@ depend: ${CC} -MM ${CFLAGS} *.c >> .depend clean: - rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini + rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} include: .depend - diff --git a/bacnet-stack/demo/timesync/Makefile b/bacnet-stack/demo/timesync/Makefile index c0a795ad..957aa225 100644 --- a/bacnet-stack/demo/timesync/Makefile +++ b/bacnet-stack/demo/timesync/Makefile @@ -1,95 +1,56 @@ #Makefile to build BACnet Application for the Linux Port -CC = gcc -BASEDIR = . -#CFLAGS = -Wall -I. -# -g for debugging with gdb -#CFLAGS = -Wall -I. -O2 -g -# Note: you can strip out symbols using the strip command -# to get an idea of how big the compile really is. + +# Compiler to use +CC = gcc +# Executable file name +TARGET = bacts # Configure the BACnet Datalink Layer -#BACDL_DEFINE=-DBACDL_ETHERNET=1 -#BACDL_DEFINE=-DBACDL_ARCNET=1 -BACDL_DEFINE=-DBACDL_BIP=1 -BACNET_DEFINES=-DPRINT_ENABLED=1 +#BACDL_DEFINE = -DBACDL_ETHERNET=1 +#BACDL_DEFINE = -DBACDL_ARCNET=1 +#BACDL_DEFINE = -DBACDL_MSTP=1 +BACDL_DEFINE = -DBACDL_BIP=1 +BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1 DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE) +# Directories BACNET_PORT = ../../ports/linux BACNET_OBJECT = ../object BACNET_HANDLER = ../handler BACNET_ROOT = ../.. -INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +# BACnet Library +BACNET_LIB_DIR = ../../lib +BACNET_LIB_NAME = bacnet +BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a +# Compiler Setup +INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) - -TARGET = bacts - -SRCS = main.c \ - $(BACNET_PORT)/bip-init.c \ - $(BACNET_PORT)/ethernet.c \ - $(BACNET_PORT)/arcnet.c \ - $(BACNET_ROOT)/bip.c \ - $(BACNET_HANDLER)/txbuf.c \ - $(BACNET_HANDLER)/noserv.c \ - $(BACNET_HANDLER)/h_whois.c \ - $(BACNET_HANDLER)/h_ihave.c \ - $(BACNET_HANDLER)/h_iam.c \ - $(BACNET_HANDLER)/h_rp.c \ - $(BACNET_HANDLER)/h_ts.c \ - $(BACNET_HANDLER)/s_ts.c \ - $(BACNET_OBJECT)/device.c \ - $(BACNET_OBJECT)/ai.c \ - $(BACNET_OBJECT)/ao.c \ - $(BACNET_OBJECT)/av.c \ - $(BACNET_OBJECT)/bi.c \ - $(BACNET_OBJECT)/bo.c \ - $(BACNET_OBJECT)/bv.c \ - $(BACNET_OBJECT)/lsp.c \ - $(BACNET_OBJECT)/lc.c \ - $(BACNET_OBJECT)/mso.c \ - $(BACNET_OBJECT)/bacfile.c \ - $(BACNET_ROOT)/filename.c \ - $(BACNET_ROOT)/rp.c \ - $(BACNET_ROOT)/wp.c \ - $(BACNET_ROOT)/bacdcode.c \ - $(BACNET_ROOT)/bacint.c \ - $(BACNET_ROOT)/bacapp.c \ - $(BACNET_ROOT)/bacprop.c \ - $(BACNET_ROOT)/bacstr.c \ - $(BACNET_ROOT)/bactext.c \ - $(BACNET_ROOT)/indtext.c \ - $(BACNET_ROOT)/datetime.c \ - $(BACNET_ROOT)/whois.c \ - $(BACNET_ROOT)/iam.c \ - $(BACNET_ROOT)/whohas.c \ - $(BACNET_ROOT)/ihave.c \ - $(BACNET_ROOT)/address.c \ - $(BACNET_ROOT)/arf.c \ - $(BACNET_ROOT)/dcc.c \ - $(BACNET_ROOT)/timesync.c \ - $(BACNET_ROOT)/abort.c \ - $(BACNET_ROOT)/reject.c \ - $(BACNET_ROOT)/bacerror.c \ - $(BACNET_ROOT)/apdu.c \ - $(BACNET_ROOT)/npdu.c \ - $(BACNET_ROOT)/version.c +SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${TARGET} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET} + size ${TARGET} + +${TARGET}: ${OBJS} Makefile + ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ + +lib: ${BACNET_LIB_TARGET} + +${BACNET_LIB_TARGET}: + ( cd ${BACNET_LIB_DIR} ; make clean ; make ) .c.o: ${CC} -c ${CFLAGS} $*.c -o $@ - + depend: rm -f .depend ${CC} -MM ${CFLAGS} *.c >> .depend - + clean: - rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini + rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} include: .depend - diff --git a/bacnet-stack/demo/ucov/Makefile b/bacnet-stack/demo/ucov/Makefile index d7f65001..a88dfda9 100644 --- a/bacnet-stack/demo/ucov/Makefile +++ b/bacnet-stack/demo/ucov/Makefile @@ -1,90 +1,56 @@ #Makefile to build BACnet Application for the Linux Port -CC = gcc -BASEDIR = . -#CFLAGS = -Wall -I. -# -g for debugging with gdb -#CFLAGS = -Wall -I. -O2 -g -# Note: you can strip out symbols using the strip command -# to get an idea of how big the compile really is. + +# Compiler to use +CC = gcc +# Executable file name +TARGET = bacucov # Configure the BACnet Datalink Layer -#BACDL_DEFINE=-DBACDL_ETHERNET=1 -#BACDL_DEFINE=-DBACDL_ARCNET=1 -BACDL_DEFINE=-DBACDL_BIP=1 -BACNET_DEFINES=-DMAX_TSM_TRANSACTIONS=0 -DPRINT_ENABLED=1 +#BACDL_DEFINE = -DBACDL_ETHERNET=1 +#BACDL_DEFINE = -DBACDL_ARCNET=1 +#BACDL_DEFINE = -DBACDL_MSTP=1 +BACDL_DEFINE = -DBACDL_BIP=1 +BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1 DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE) +# Directories BACNET_PORT = ../../ports/linux BACNET_OBJECT = ../object BACNET_HANDLER = ../handler BACNET_ROOT = ../.. -INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +# BACnet Library +BACNET_LIB_DIR = ../../lib +BACNET_LIB_NAME = bacnet +BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a +# Compiler Setup +INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) - -TARGET = bacucov - -SRCS = main.c \ - $(BACNET_PORT)/bip-init.c \ - $(BACNET_PORT)/ethernet.c \ - $(BACNET_PORT)/arcnet.c \ - $(BACNET_ROOT)/bip.c \ - $(BACNET_HANDLER)/txbuf.c \ - $(BACNET_HANDLER)/noserv.c \ - $(BACNET_HANDLER)/h_whois.c \ - $(BACNET_HANDLER)/h_rp.c \ - $(BACNET_HANDLER)/h_iam.c \ - $(BACNET_OBJECT)/device.c \ - $(BACNET_OBJECT)/ai.c \ - $(BACNET_OBJECT)/ao.c \ - $(BACNET_OBJECT)/av.c \ - $(BACNET_OBJECT)/bi.c \ - $(BACNET_OBJECT)/bo.c \ - $(BACNET_OBJECT)/bv.c \ - $(BACNET_OBJECT)/lc.c \ - $(BACNET_OBJECT)/lsp.c \ - $(BACNET_OBJECT)/mso.c \ - $(BACNET_OBJECT)/bacfile.c \ - $(BACNET_ROOT)/filename.c \ - $(BACNET_ROOT)/rp.c \ - $(BACNET_ROOT)/wp.c \ - $(BACNET_ROOT)/bacdcode.c \ - $(BACNET_ROOT)/bacint.c \ - $(BACNET_ROOT)/bacapp.c \ - $(BACNET_ROOT)/bacprop.c \ - $(BACNET_ROOT)/bacstr.c \ - $(BACNET_ROOT)/bactext.c \ - $(BACNET_ROOT)/indtext.c \ - $(BACNET_ROOT)/datetime.c \ - $(BACNET_ROOT)/whois.c \ - $(BACNET_ROOT)/iam.c \ - $(BACNET_ROOT)/address.c \ - $(BACNET_ROOT)/arf.c \ - $(BACNET_ROOT)/cov.c \ - $(BACNET_ROOT)/dcc.c \ - $(BACNET_ROOT)/abort.c \ - $(BACNET_ROOT)/reject.c \ - $(BACNET_ROOT)/bacerror.c \ - $(BACNET_ROOT)/apdu.c \ - $(BACNET_ROOT)/npdu.c \ - $(BACNET_ROOT)/version.c +SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${TARGET} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET} + size ${TARGET} + +${TARGET}: ${OBJS} Makefile + ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ + +lib: ${BACNET_LIB_TARGET} + +${BACNET_LIB_TARGET}: + ( cd ${BACNET_LIB_DIR} ; make clean ; make ) .c.o: ${CC} -c ${CFLAGS} $*.c -o $@ - + depend: rm -f .depend ${CC} -MM ${CFLAGS} *.c >> .depend - + clean: - rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini + rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} include: .depend - diff --git a/bacnet-stack/demo/whohas/Makefile b/bacnet-stack/demo/whohas/Makefile index 06edf987..4b462879 100644 --- a/bacnet-stack/demo/whohas/Makefile +++ b/bacnet-stack/demo/whohas/Makefile @@ -1,94 +1,56 @@ #Makefile to build BACnet Application for the Linux Port -CC = gcc -BASEDIR = . -#CFLAGS = -Wall -I. -# -g for debugging with gdb -#CFLAGS = -Wall -I. -O2 -g -# Note: you can strip out symbols using the strip command -# to get an idea of how big the compile really is. -BACNET_DEFINES=-DMAX_TSM_TRANSACTIONS=0 -DPRINT_ENABLED=1 -#BACDL_DEFINE=-DBACDL_ETHERNET=1 -#BACDL_DEFINE=-DBACDL_ARCNET=1 -BACDL_DEFINE=-DBACDL_BIP=1 +# Compiler to use +CC = gcc +# Executable file name +TARGET = bacwh + +# Configure the BACnet Datalink Layer +#BACDL_DEFINE = -DBACDL_ETHERNET=1 +#BACDL_DEFINE = -DBACDL_ARCNET=1 +#BACDL_DEFINE = -DBACDL_MSTP=1 +BACDL_DEFINE = -DBACDL_BIP=1 +BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1 DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE) +# Directories BACNET_PORT = ../../ports/linux BACNET_OBJECT = ../object BACNET_HANDLER = ../handler BACNET_ROOT = ../.. -INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +# BACnet Library +BACNET_LIB_DIR = ../../lib +BACNET_LIB_NAME = bacnet +BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a +# Compiler Setup +INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) - -TARGET = bacwh - -SRCS = main.c \ - $(BACNET_ROOT)/rd.c \ - $(BACNET_PORT)/bip-init.c \ - $(BACNET_PORT)/ethernet.c \ - $(BACNET_PORT)/arcnet.c \ - $(BACNET_ROOT)/bip.c \ - $(BACNET_HANDLER)/txbuf.c \ - $(BACNET_HANDLER)/noserv.c \ - $(BACNET_HANDLER)/h_whois.c \ - $(BACNET_HANDLER)/h_ihave.c \ - $(BACNET_HANDLER)/h_rp.c \ - $(BACNET_HANDLER)/s_whohas.c \ - $(BACNET_HANDLER)/s_ihave.c \ - $(BACNET_OBJECT)/device.c \ - $(BACNET_OBJECT)/ai.c \ - $(BACNET_OBJECT)/ao.c \ - $(BACNET_OBJECT)/av.c \ - $(BACNET_OBJECT)/bi.c \ - $(BACNET_OBJECT)/bo.c \ - $(BACNET_OBJECT)/bv.c \ - $(BACNET_OBJECT)/lc.c \ - $(BACNET_OBJECT)/lsp.c \ - $(BACNET_OBJECT)/mso.c \ - $(BACNET_OBJECT)/bacfile.c \ - $(BACNET_ROOT)/filename.c \ - $(BACNET_ROOT)/rp.c \ - $(BACNET_ROOT)/wp.c \ - $(BACNET_ROOT)/bacdcode.c \ - $(BACNET_ROOT)/bacint.c \ - $(BACNET_ROOT)/bacapp.c \ - $(BACNET_ROOT)/bacprop.c \ - $(BACNET_ROOT)/bacstr.c \ - $(BACNET_ROOT)/bactext.c \ - $(BACNET_ROOT)/datetime.c \ - $(BACNET_ROOT)/indtext.c \ - $(BACNET_ROOT)/bigend.c \ - $(BACNET_ROOT)/whois.c \ - $(BACNET_ROOT)/iam.c \ - $(BACNET_ROOT)/whohas.c \ - $(BACNET_ROOT)/ihave.c \ - $(BACNET_ROOT)/address.c \ - $(BACNET_ROOT)/arf.c \ - $(BACNET_ROOT)/dcc.c \ - $(BACNET_ROOT)/abort.c \ - $(BACNET_ROOT)/reject.c \ - $(BACNET_ROOT)/bacerror.c \ - $(BACNET_ROOT)/apdu.c \ - $(BACNET_ROOT)/npdu.c \ - $(BACNET_ROOT)/version.c +SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${TARGET} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET} + size ${TARGET} + +${TARGET}: ${OBJS} Makefile + ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ + +lib: ${BACNET_LIB_TARGET} + +${BACNET_LIB_TARGET}: + ( cd ${BACNET_LIB_DIR} ; make clean ; make ) .c.o: ${CC} -c ${CFLAGS} $*.c -o $@ - + depend: rm -f .depend ${CC} -MM ${CFLAGS} *.c >> .depend - + clean: - rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini + rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} include: .depend - diff --git a/bacnet-stack/demo/whois/Makefile b/bacnet-stack/demo/whois/Makefile index 3b6e239c..9716abc1 100644 --- a/bacnet-stack/demo/whois/Makefile +++ b/bacnet-stack/demo/whois/Makefile @@ -1,95 +1,55 @@ #Makefile to build BACnet Application for the Linux Port -CC = gcc -BASEDIR = . -#CFLAGS = -Wall -I. -# -g for debugging with gdb -#CFLAGS = -Wall -I. -O2 -g -# Note: you can strip out symbols using the strip command -# to get an idea of how big the compile really is. +CC = gcc -# Set the BACnet datalink layer +TARGET = bacwi + +# Configure the BACnet Datalink Layer #BACDL_DEFINE = -DBACDL_ETHERNET=1 #BACDL_DEFINE = -DBACDL_ARCNET=1 -BACDL_DEFINE = -DBACDL_BIP=1 -DUSE_INADDR=1 -BACNET_DEFINES = -DMAX_TSM_TRANSACTIONS=0 -DPRINT_ENABLED=1 -DEFINES=$(BACDL_DEFINE) $(BACNET_DEFINES) +#BACDL_DEFINE = -DBACDL_MSTP=1 +BACDL_DEFINE = -DBACDL_BIP=1 +BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1 +DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE) +# Directories BACNET_PORT = ../../ports/linux BACNET_OBJECT = ../object BACNET_HANDLER = ../handler BACNET_ROOT = ../.. -INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +# BACnet Library +BACNET_LIB_DIR = ../../lib +BACNET_LIB_NAME = bacnet +BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a +# Compiler Setup +INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) -TARGET = bacwi - -SRCS = main.c \ - $(BACNET_ROOT)/rd.c \ - $(BACNET_PORT)/arcnet.c \ - $(BACNET_PORT)/ethernet.c \ - $(BACNET_PORT)/bip-init.c \ - $(BACNET_ROOT)/bip.c \ - $(BACNET_HANDLER)/txbuf.c \ - $(BACNET_HANDLER)/noserv.c \ - $(BACNET_HANDLER)/h_whois.c \ - $(BACNET_HANDLER)/h_ihave.c \ - $(BACNET_HANDLER)/h_iam.c \ - $(BACNET_HANDLER)/h_rp.c \ - $(BACNET_HANDLER)/s_ihave.c \ - $(BACNET_HANDLER)/s_whois.c \ - $(BACNET_OBJECT)/device.c \ - $(BACNET_OBJECT)/ai.c \ - $(BACNET_OBJECT)/ao.c \ - $(BACNET_OBJECT)/av.c \ - $(BACNET_OBJECT)/bi.c \ - $(BACNET_OBJECT)/bo.c \ - $(BACNET_OBJECT)/bv.c \ - $(BACNET_OBJECT)/lc.c \ - $(BACNET_OBJECT)/lsp.c \ - $(BACNET_OBJECT)/mso.c \ - $(BACNET_OBJECT)/bacfile.c \ - $(BACNET_ROOT)/filename.c \ - $(BACNET_ROOT)/rp.c \ - $(BACNET_ROOT)/wp.c \ - $(BACNET_ROOT)/bacdcode.c \ - $(BACNET_ROOT)/bacint.c \ - $(BACNET_ROOT)/bacapp.c \ - $(BACNET_ROOT)/bacprop.c \ - $(BACNET_ROOT)/bacstr.c \ - $(BACNET_ROOT)/bactext.c \ - $(BACNET_ROOT)/indtext.c \ - $(BACNET_ROOT)/datetime.c \ - $(BACNET_ROOT)/whois.c \ - $(BACNET_ROOT)/iam.c \ - $(BACNET_ROOT)/whohas.c \ - $(BACNET_ROOT)/ihave.c \ - $(BACNET_ROOT)/address.c \ - $(BACNET_ROOT)/arf.c \ - $(BACNET_ROOT)/dcc.c \ - $(BACNET_ROOT)/abort.c \ - $(BACNET_ROOT)/reject.c \ - $(BACNET_ROOT)/bacerror.c \ - $(BACNET_ROOT)/apdu.c \ - $(BACNET_ROOT)/npdu.c \ - $(BACNET_ROOT)/version.c +SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${TARGET} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET} + size ${TARGET} + +${TARGET}: ${OBJS} Makefile + ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ + +lib: ${BACNET_LIB_TARGET} + +${BACNET_LIB_TARGET}: + ( cd ${BACNET_LIB_DIR} ; make clean ; make ) .c.o: ${CC} -c ${CFLAGS} $*.c -o $@ - + depend: rm -f .depend ${CC} -MM ${CFLAGS} *.c >> .depend - + clean: - rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini + rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} include: .depend - diff --git a/bacnet-stack/demo/writefile/Makefile b/bacnet-stack/demo/writefile/Makefile index 1592a840..df5c595d 100644 --- a/bacnet-stack/demo/writefile/Makefile +++ b/bacnet-stack/demo/writefile/Makefile @@ -1,92 +1,56 @@ #Makefile to build BACnet Application for the Linux Port -CC = gcc -BASEDIR = . -#CFLAGS = -Wall -I. -# -g for debugging with gdb -#CFLAGS = -Wall -I. -O2 -g -# Note: you can strip out symbols using the strip command -# to get an idea of how big the compile really is. + +# Compiler to use +CC = gcc +# Executable file name +TARGET = bacawf # Configure the BACnet Datalink Layer -#BACDL_DEFINE=-DBACDL_ETHERNET=1 -#BACDL_DEFINE=-DBACDL_ARCNET=1 -BACDL_DEFINE=-DBACDL_BIP=1 -BACNET_DEFINES=-DTSM_ENABLED=1 -DPRINT_ENABLED=1 +#BACDL_DEFINE = -DBACDL_ETHERNET=1 +#BACDL_DEFINE = -DBACDL_ARCNET=1 +#BACDL_DEFINE = -DBACDL_MSTP=1 +BACDL_DEFINE = -DBACDL_BIP=1 +BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1 DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE) +# Directories BACNET_PORT = ../../ports/linux BACNET_OBJECT = ../object BACNET_HANDLER = ../handler BACNET_ROOT = ../.. -INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +# BACnet Library +BACNET_LIB_DIR = ../../lib +BACNET_LIB_NAME = bacnet +BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a +# Compiler Setup +INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) - -TARGET = bacawf - -SRCS = main.c \ - $(BACNET_PORT)/bip-init.c \ - $(BACNET_PORT)/ethernet.c \ - $(BACNET_PORT)/arcnet.c \ - $(BACNET_ROOT)/bip.c \ - $(BACNET_HANDLER)/txbuf.c \ - $(BACNET_HANDLER)/noserv.c \ - $(BACNET_HANDLER)/h_whois.c \ - $(BACNET_HANDLER)/h_rp.c \ - $(BACNET_HANDLER)/s_whois.c \ - $(BACNET_HANDLER)/s_awfs.c \ - $(BACNET_ROOT)/rp.c \ - $(BACNET_ROOT)/bacdcode.c \ - $(BACNET_ROOT)/bacint.c \ - $(BACNET_ROOT)/bacapp.c \ - $(BACNET_ROOT)/bacprop.c \ - $(BACNET_ROOT)/bacstr.c \ - $(BACNET_ROOT)/bactext.c \ - $(BACNET_ROOT)/datetime.c \ - $(BACNET_ROOT)/indtext.c \ - $(BACNET_ROOT)/filename.c \ - $(BACNET_ROOT)/bigend.c \ - $(BACNET_ROOT)/whois.c \ - $(BACNET_ROOT)/iam.c \ - $(BACNET_ROOT)/tsm.c \ - $(BACNET_ROOT)/address.c \ - $(BACNET_OBJECT)/device.c \ - $(BACNET_OBJECT)/ai.c \ - $(BACNET_OBJECT)/ao.c \ - $(BACNET_OBJECT)/av.c \ - $(BACNET_OBJECT)/bi.c \ - $(BACNET_OBJECT)/bo.c \ - $(BACNET_OBJECT)/bv.c \ - $(BACNET_OBJECT)/lc.c \ - $(BACNET_OBJECT)/lsp.c \ - $(BACNET_OBJECT)/mso.c \ - $(BACNET_OBJECT)/bacfile.c \ - $(BACNET_ROOT)/arf.c \ - $(BACNET_ROOT)/awf.c \ - $(BACNET_ROOT)/dcc.c \ - $(BACNET_ROOT)/abort.c \ - $(BACNET_ROOT)/reject.c \ - $(BACNET_ROOT)/bacerror.c \ - $(BACNET_ROOT)/apdu.c \ - $(BACNET_ROOT)/npdu.c \ - $(BACNET_ROOT)/version.c +SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${TARGET} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET} + size ${TARGET} + +${TARGET}: ${OBJS} Makefile + ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ + +lib: ${BACNET_LIB_TARGET} + +${BACNET_LIB_TARGET}: + ( cd ${BACNET_LIB_DIR} ; make clean ; make ) .c.o: ${CC} -c ${CFLAGS} $*.c -o $@ - + depend: rm -f .depend ${CC} -MM ${CFLAGS} *.c >> .depend - + clean: - rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini + rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} include: .depend - diff --git a/bacnet-stack/demo/writeprop/Makefile b/bacnet-stack/demo/writeprop/Makefile index bccdba6a..93ef38e7 100644 --- a/bacnet-stack/demo/writeprop/Makefile +++ b/bacnet-stack/demo/writeprop/Makefile @@ -1,92 +1,56 @@ #Makefile to build BACnet Application for the Linux Port -CC = gcc -BASEDIR = . -#CFLAGS = -Wall -I. -# -g for debugging with gdb -#CFLAGS = -Wall -I. -O2 -g -# Note: you can strip out symbols using the strip command -# to get an idea of how big the compile really is. + +# Compiler to use +CC = gcc +# Executable file name +TARGET = bacwp # Configure the BACnet Datalink Layer -#BACDL_DEFINE=-DBACDL_ETHERNET=1 -#BACDL_DEFINE=-DBACDL_ARCNET=1 -BACDL_DEFINE=-DBACDL_BIP=1 -BACNET_DEFINES=-DPRINT_ENABLED=1 +#BACDL_DEFINE = -DBACDL_ETHERNET=1 +#BACDL_DEFINE = -DBACDL_ARCNET=1 +#BACDL_DEFINE = -DBACDL_MSTP=1 +BACDL_DEFINE = -DBACDL_BIP=1 +BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1 DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE) +# Directories BACNET_PORT = ../../ports/linux BACNET_OBJECT = ../object BACNET_HANDLER = ../handler BACNET_ROOT = ../.. -INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +# BACnet Library +BACNET_LIB_DIR = ../../lib +BACNET_LIB_NAME = bacnet +BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a +# Compiler Setup +INCLUDES = -I$(BACNET_ROOT) -I$(BACNET_PORT) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) +LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) - -TARGET = bacwp - -SRCS = main.c \ - $(BACNET_PORT)/bip-init.c \ - $(BACNET_PORT)/ethernet.c \ - $(BACNET_PORT)/arcnet.c \ - $(BACNET_ROOT)/bip.c \ - $(BACNET_HANDLER)/txbuf.c \ - $(BACNET_HANDLER)/noserv.c \ - $(BACNET_HANDLER)/h_whois.c \ - $(BACNET_HANDLER)/h_rp.c \ - $(BACNET_HANDLER)/h_iam.c \ - $(BACNET_HANDLER)/s_wp.c \ - $(BACNET_HANDLER)/s_whois.c \ - $(BACNET_OBJECT)/device.c \ - $(BACNET_OBJECT)/ai.c \ - $(BACNET_OBJECT)/ao.c \ - $(BACNET_OBJECT)/av.c \ - $(BACNET_OBJECT)/bi.c \ - $(BACNET_OBJECT)/bo.c \ - $(BACNET_OBJECT)/bv.c \ - $(BACNET_OBJECT)/lc.c \ - $(BACNET_OBJECT)/lsp.c \ - $(BACNET_OBJECT)/mso.c \ - $(BACNET_OBJECT)/bacfile.c \ - $(BACNET_ROOT)/filename.c \ - $(BACNET_ROOT)/rp.c \ - $(BACNET_ROOT)/wp.c \ - $(BACNET_ROOT)/bacdcode.c \ - $(BACNET_ROOT)/bacint.c \ - $(BACNET_ROOT)/bacapp.c \ - $(BACNET_ROOT)/bacprop.c \ - $(BACNET_ROOT)/bacstr.c \ - $(BACNET_ROOT)/bactext.c \ - $(BACNET_ROOT)/datetime.c \ - $(BACNET_ROOT)/indtext.c \ - $(BACNET_ROOT)/whois.c \ - $(BACNET_ROOT)/iam.c \ - $(BACNET_ROOT)/tsm.c \ - $(BACNET_ROOT)/address.c \ - $(BACNET_ROOT)/arf.c \ - $(BACNET_ROOT)/dcc.c \ - $(BACNET_ROOT)/abort.c \ - $(BACNET_ROOT)/reject.c \ - $(BACNET_ROOT)/bacerror.c \ - $(BACNET_ROOT)/apdu.c \ - $(BACNET_ROOT)/npdu.c \ - $(BACNET_ROOT)/version.c +SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${TARGET} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET} + size ${TARGET} + +${TARGET}: ${OBJS} Makefile + ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ + +lib: ${BACNET_LIB_TARGET} + +${BACNET_LIB_TARGET}: + ( cd ${BACNET_LIB_DIR} ; make clean ; make ) .c.o: ${CC} -c ${CFLAGS} $*.c -o $@ - + depend: rm -f .depend ${CC} -MM ${CFLAGS} *.c >> .depend - + clean: - rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini + rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} include: .depend - diff --git a/bacnet-stack/ports/linux/dlmstp.c b/bacnet-stack/ports/linux/dlmstp.c index d97f4d97..e68c86dd 100644 --- a/bacnet-stack/ports/linux/dlmstp.c +++ b/bacnet-stack/ports/linux/dlmstp.c @@ -41,6 +41,7 @@ /* project includes */ #include "bacdef.h" +#include "bacaddr.h" #include "mstp.h" #include "dlmstp.h" #include "rs485.h" @@ -299,7 +300,6 @@ int dlmstp_get_transmit_packet( struct timeval select_timeout; fd_set read_fds; int max = 0; - uint8_t destination = 0; /* destination address */ /* Make sure the socket is open */ if (Transmit_Client_SockFD <= 0) @@ -380,30 +380,6 @@ uint16_t MSTP_Get_Send( return pdu_len; } -bool dlmstp_same_bacnet_address(BACNET_ADDRESS * dest, BACNET_ADDRESS * src) -{ - int i = 0; - - if (!dest || !src) - return false; - if (dest->mac_len != src->mac_len) - return false; - for (i = 0; i < dest->mac_len; i++) { - if (dest->mac[i] != src->mac[i]) - return false; - } - if (dest->net != src->net) - return false; - if (dest->len != src->len) - return false; - for (i = 0; i < dest->len; i++) { - if (dest->adr[i] != src->adr[i]) - return false; - } - - return true; -} - bool dlmstp_compare_data_expecting_reply( uint8_t *request_pdu, uint16_t request_pdu_len, @@ -445,7 +421,7 @@ bool dlmstp_compare_data_expecting_reply( else request.service_choice = request_pdu[offset+3]; /* decode the reply data */ - dlmstp_copy_bacnet_address(&reply.address, dest_address); + bacnet_address_copy(&reply.address, dest_address); offset = npdu_decode(&reply_pdu[0], &reply.address, NULL, &reply.npdu_data); if (reply.npdu_data.network_layer_message) { @@ -506,7 +482,7 @@ bool dlmstp_compare_data_expecting_reply( if (request.npdu_data.priority != reply.npdu_data.priority) { return false; } - if (!dlmstp_same_bacnet_address(&request.address, &reply.address)) { + if (!bacnet_address_same(&request.address, &reply.address)) { return false; } @@ -518,12 +494,12 @@ uint16_t MSTP_Get_Reply( unsigned timeout) /* milliseconds to wait for a packet */ { int received_bytes = 0; - DLMSTP_PACKET packet; + DLMSTP_PACKET Transmit_Packet; uint16_t pdu_len = 0; /* return value */ uint8_t destination = 0; /* destination address */ bool matched = false; - received_bytes = dlmstp_get_transmit_packet(&packet, timeout); + received_bytes = dlmstp_get_transmit_packet(&Transmit_Packet, timeout); if (received_bytes <= 0) return 0; /* load destination MAC address */ @@ -549,14 +525,16 @@ uint16_t MSTP_Get_Reply( &mstp_port->OutputBuffer[0], /* <-- loading this */ mstp_port->OutputBufferSize, Transmit_Packet.frame_type, - destination, mstp_port->This_Station, + destination, + mstp_port->This_Station, &Transmit_Packet.pdu[0], Transmit_Packet.pdu_len); /* not used here, but setting it anyway */ Transmit_Packet.ready = false; } else { /* put it back into the queue */ - (void)write(Transmit_Server_SockFD, &packet, sizeof(packet)); + (void)write(Transmit_Server_SockFD, + &Transmit_Packet, sizeof(Transmit_Packet)); } return pdu_len; diff --git a/bacnet-stack/ports/win32/dlmstp.c b/bacnet-stack/ports/win32/dlmstp.c index b70e38ef..3b4f8218 100644 --- a/bacnet-stack/ports/win32/dlmstp.c +++ b/bacnet-stack/ports/win32/dlmstp.c @@ -29,6 +29,7 @@ #include #include #include "bacdef.h" +#include "bacaddr.h" #include "mstp.h" #include "dlmstp.h" #include "rs485.h" @@ -90,23 +91,6 @@ void dlmstp_cleanup(void) } } -void dlmstp_copy_bacnet_address(BACNET_ADDRESS * dest, BACNET_ADDRESS * src) -{ - int i = 0; - - if (dest && src) { - dest->mac_len = src->mac_len; - for (i = 0; i < MAX_MAC_LEN; i++) { - dest->mac[i] = src->mac[i]; - } - dest->net = src->net; - dest->len = src->len; - for (i = 0; i < MAX_MAC_LEN; i++) { - dest->adr[i] = src->adr[i]; - } - } -} - /* returns number of bytes sent on success, zero on failure */ int dlmstp_send_pdu(BACNET_ADDRESS * dest, /* destination address */ BACNET_NPDU_DATA * npdu_data, /* network information */ @@ -128,7 +112,7 @@ int dlmstp_send_pdu(BACNET_ADDRESS * dest, /* destination address */ for (i = 0; i < pdu_len; i++) { Transmit_Packet.pdu[i] = pdu[i]; } - dlmstp_copy_bacnet_address(&Transmit_Packet.address, dest); + bacnet_address_copy(&Transmit_Packet.address, dest); bytes_sent = pdu_len + MAX_HEADER; Transmit_Packet.ready = true; } @@ -317,30 +301,6 @@ uint16_t MSTP_Get_Send( return pdu_len; } -bool dlmstp_same_bacnet_address(BACNET_ADDRESS * dest, BACNET_ADDRESS * src) -{ - int i = 0; - - if (!dest || !src) - return false; - if (dest->mac_len != src->mac_len) - return false; - for (i = 0; i < dest->mac_len; i++) { - if (dest->mac[i] != src->mac[i]) - return false; - } - if (dest->net != src->net) - return false; - if (dest->len != src->len) - return false; - for (i = 0; i < dest->len; i++) { - if (dest->adr[i] != src->adr[i]) - return false; - } - - return true; -} - bool dlmstp_compare_data_expecting_reply( uint8_t *request_pdu, uint16_t request_pdu_len, @@ -382,7 +342,7 @@ bool dlmstp_compare_data_expecting_reply( else request.service_choice = request_pdu[offset+3]; /* decode the reply data */ - dlmstp_copy_bacnet_address(&reply.address, dest_address); + bacnet_address_copy(&reply.address, dest_address); offset = npdu_decode(&reply_pdu[0], &reply.address, NULL, &reply.npdu_data); if (reply.npdu_data.network_layer_message) { @@ -443,7 +403,7 @@ bool dlmstp_compare_data_expecting_reply( if (request.npdu_data.priority != reply.npdu_data.priority) { return false; } - if (!dlmstp_same_bacnet_address(&request.address, &reply.address)) { + if (!bacnet_address_same(&request.address, &reply.address)) { return false; } diff --git a/bacnet-stack/tsm.c b/bacnet-stack/tsm.c index a6e1e571..a9846728 100644 --- a/bacnet-stack/tsm.c +++ b/bacnet-stack/tsm.c @@ -47,6 +47,7 @@ #include "datalink.h" #include "handlers.h" #include "address.h" +#include "bacaddr.h" /* Transaction State Machine */ /* Really only needed for segmented messages */ @@ -189,7 +190,7 @@ void tsm_set_confirmed_unsegmented_transaction(uint8_t invokeID, } TSM_List[index].apdu_len = apdu_len; npdu_copy_data(&TSM_List[index].npdu_data, ndpu_data); - address_copy(&TSM_List[index].dest, dest); + bacnet_address_copy(&TSM_List[index].dest, dest); } } @@ -218,7 +219,7 @@ bool tsm_get_transaction_pdu(uint8_t invokeID, apdu[j] = TSM_List[index].apdu[j]; } npdu_copy_data(ndpu_data, &TSM_List[index].npdu_data); - address_copy(dest, &TSM_List[index].dest); + bacnet_address_copy(dest, &TSM_List[index].dest); found = true; } }