Converted the linux build to use BACnet library. Moved some BACnet address functions to bacaddr.c/h.
This commit is contained in:
+12
-12
@@ -29,37 +29,37 @@ clean: \
|
|||||||
( cd demo/epics ; make clean )
|
( cd demo/epics ; make clean )
|
||||||
|
|
||||||
readprop: demo/readprop/Makefile
|
readprop: demo/readprop/Makefile
|
||||||
( cd demo/readprop ; make clean ; make ; cp bacrp ../../utils )
|
( cd demo/readprop ; make ; cp bacrp ../../utils )
|
||||||
|
|
||||||
writeprop: demo/writeprop/Makefile
|
writeprop: demo/writeprop/Makefile
|
||||||
( cd demo/writeprop ; make clean ; make ; cp bacwp ../../utils )
|
( cd demo/writeprop ; make ; cp bacwp ../../utils )
|
||||||
|
|
||||||
readfile: demo/readfile/Makefile
|
readfile: demo/readfile/Makefile
|
||||||
( cd demo/readfile ; make clean ; make ; cp bacarf ../../utils )
|
( cd demo/readfile ; make ; cp bacarf ../../utils )
|
||||||
|
|
||||||
writefile: demo/writefile/Makefile
|
writefile: demo/writefile/Makefile
|
||||||
( cd demo/writefile ; make clean ; make ; cp bacawf ../../utils )
|
( cd demo/writefile ; make ; cp bacawf ../../utils )
|
||||||
|
|
||||||
reinit: demo/reinit/Makefile
|
reinit: demo/reinit/Makefile
|
||||||
( cd demo/reinit ; make clean ; make ; cp bacrd ../../utils )
|
( cd demo/reinit ; make ; cp bacrd ../../utils )
|
||||||
|
|
||||||
server: demo/server/Makefile
|
server: demo/server/Makefile
|
||||||
( cd demo/server ; make clean ; make ; cp bacserv ../../utils )
|
( cd demo/server ; make ; cp bacserv ../../utils )
|
||||||
|
|
||||||
dcc: demo/dcc/Makefile
|
dcc: demo/dcc/Makefile
|
||||||
( cd demo/dcc ; make clean ; make ; cp bacdcc ../../utils )
|
( cd demo/dcc ; make ; cp bacdcc ../../utils )
|
||||||
|
|
||||||
whohas: demo/whohas/Makefile
|
whohas: demo/whohas/Makefile
|
||||||
( cd demo/whohas ; make clean ; make ; cp bacwh ../../utils )
|
( cd demo/whohas ; make ; cp bacwh ../../utils )
|
||||||
|
|
||||||
timesync: demo/timesync/Makefile
|
timesync: demo/timesync/Makefile
|
||||||
( cd demo/timesync ; make clean ; make ; cp bacts ../../utils )
|
( cd demo/timesync ; make ; cp bacts ../../utils )
|
||||||
|
|
||||||
epics: demo/epics/Makefile
|
epics: demo/epics/Makefile
|
||||||
( cd demo/epics ; make clean ; make ; cp bacepics ../../utils )
|
( cd demo/epics ; make ; cp bacepics ../../utils )
|
||||||
|
|
||||||
ucov: demo/ucov/Makefile
|
ucov: demo/ucov/Makefile
|
||||||
( cd demo/ucov ; make clean ; make ; cp bacucov ../../utils )
|
( cd demo/ucov ; make ; cp bacucov ../../utils )
|
||||||
|
|
||||||
whois: demo/whois/Makefile
|
whois: demo/whois/Makefile
|
||||||
( cd demo/whois ; make clean ; make ; cp bacwi ../../utils )
|
( cd demo/whois ; make ; cp bacwi ../../utils )
|
||||||
|
|||||||
+8
-26
@@ -36,6 +36,7 @@
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include "bacaddr.h"
|
||||||
#include "address.h"
|
#include "address.h"
|
||||||
#include "bacdef.h"
|
#include "bacdef.h"
|
||||||
#include "bacdcode.h"
|
#include "bacdcode.h"
|
||||||
@@ -52,25 +53,6 @@ static struct Address_Cache_Entry {
|
|||||||
BACNET_ADDRESS address;
|
BACNET_ADDRESS address;
|
||||||
} Address_Cache[MAX_ADDRESS_CACHE];
|
} 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)
|
void address_remove_device(uint32_t device_id)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
@@ -108,7 +90,7 @@ bool address_get_by_device(uint32_t device_id,
|
|||||||
for (i = 0; i < MAX_ADDRESS_CACHE; i++) {
|
for (i = 0; i < MAX_ADDRESS_CACHE; i++) {
|
||||||
if (Address_Cache[i].valid &&
|
if (Address_Cache[i].valid &&
|
||||||
(Address_Cache[i].device_id == device_id)) {
|
(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;
|
*max_apdu = Address_Cache[i].max_apdu;
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
@@ -128,7 +110,7 @@ void address_add(uint32_t device_id,
|
|||||||
for (i = 0; i < MAX_ADDRESS_CACHE; i++) {
|
for (i = 0; i < MAX_ADDRESS_CACHE; i++) {
|
||||||
if (Address_Cache[i].valid &&
|
if (Address_Cache[i].valid &&
|
||||||
(Address_Cache[i].device_id == device_id)) {
|
(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;
|
Address_Cache[i].max_apdu = max_apdu;
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
@@ -141,7 +123,7 @@ void address_add(uint32_t device_id,
|
|||||||
Address_Cache[i].valid = true;
|
Address_Cache[i].valid = true;
|
||||||
Address_Cache[i].device_id = device_id;
|
Address_Cache[i].device_id = device_id;
|
||||||
Address_Cache[i].max_apdu = max_apdu;
|
Address_Cache[i].max_apdu = max_apdu;
|
||||||
address_copy(&Address_Cache[i].address, src);
|
bacnet_address_copy(&Address_Cache[i].address, src);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -163,7 +145,7 @@ bool address_bind_request(uint32_t device_id,
|
|||||||
if (Address_Cache[i].valid &&
|
if (Address_Cache[i].valid &&
|
||||||
(Address_Cache[i].device_id == device_id)) {
|
(Address_Cache[i].device_id == device_id)) {
|
||||||
found = true;
|
found = true;
|
||||||
address_copy(src, &Address_Cache[i].address);
|
bacnet_address_copy(src, &Address_Cache[i].address);
|
||||||
*max_apdu = Address_Cache[i].max_apdu;
|
*max_apdu = Address_Cache[i].max_apdu;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -198,7 +180,7 @@ void address_add_binding(uint32_t device_id,
|
|||||||
for (i = 0; i < MAX_ADDRESS_CACHE; i++) {
|
for (i = 0; i < MAX_ADDRESS_CACHE; i++) {
|
||||||
if (Address_Cache[i].valid &&
|
if (Address_Cache[i].valid &&
|
||||||
(Address_Cache[i].device_id == device_id)) {
|
(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;
|
Address_Cache[i].max_apdu = max_apdu;
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
@@ -212,7 +194,7 @@ void address_add_binding(uint32_t device_id,
|
|||||||
Address_Cache[i].bind_request = false;
|
Address_Cache[i].bind_request = false;
|
||||||
Address_Cache[i].device_id = device_id;
|
Address_Cache[i].device_id = device_id;
|
||||||
Address_Cache[i].max_apdu = max_apdu;
|
Address_Cache[i].max_apdu = max_apdu;
|
||||||
address_copy(&Address_Cache[i].address, src);
|
bacnet_address_copy(&Address_Cache[i].address, src);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -228,7 +210,7 @@ bool address_get_by_index(unsigned index,
|
|||||||
|
|
||||||
if (index < MAX_ADDRESS_CACHE) {
|
if (index < MAX_ADDRESS_CACHE) {
|
||||||
if (Address_Cache[index].valid) {
|
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;
|
*device_id = Address_Cache[index].device_id;
|
||||||
*max_apdu = Address_Cache[index].max_apdu;
|
*max_apdu = Address_Cache[index].max_apdu;
|
||||||
found = true;
|
found = true;
|
||||||
|
|||||||
@@ -45,8 +45,6 @@ extern "C" {
|
|||||||
|
|
||||||
void address_init(void);
|
void address_init(void);
|
||||||
|
|
||||||
void address_copy(BACNET_ADDRESS * dest, BACNET_ADDRESS * src);
|
|
||||||
|
|
||||||
void address_add(uint32_t device_id,
|
void address_add(uint32_t device_id,
|
||||||
unsigned max_apdu, BACNET_ADDRESS * src);
|
unsigned max_apdu, BACNET_ADDRESS * src);
|
||||||
|
|
||||||
|
|||||||
@@ -50,4 +50,3 @@ extern "C" {
|
|||||||
}
|
}
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1,83 +1,46 @@
|
|||||||
#Makefile to build BACnet Application for the Linux Port
|
#Makefile to build BACnet Application for the Linux Port
|
||||||
CC = gcc
|
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
|
TARGET = bacdcc
|
||||||
#BACDL_DEFINE=-DBACDL_ETHERNET=1
|
|
||||||
#BACDL_DEFINE=-DBACDL_ARCNET=1
|
# Configure the BACnet Datalink Layer
|
||||||
BACDL_DEFINE=-DBACDL_BIP
|
#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)
|
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
||||||
|
|
||||||
|
# Directories
|
||||||
BACNET_PORT = ../../ports/linux
|
BACNET_PORT = ../../ports/linux
|
||||||
BACNET_OBJECT = ../object
|
BACNET_OBJECT = ../object
|
||||||
BACNET_HANDLER = ../handler
|
BACNET_HANDLER = ../handler
|
||||||
BACNET_ROOT = ../..
|
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)
|
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)
|
SRCS = main.c
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
OBJS = ${SRCS:.c=.o}
|
OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
all: ${TARGET}
|
all: ${BACNET_LIB_TARGET} Makefile ${TARGET}
|
||||||
|
size ${TARGET}
|
||||||
|
|
||||||
${TARGET}: ${OBJS}
|
${TARGET}: ${OBJS} Makefile
|
||||||
${CC} -o $@ ${OBJS}
|
${CC} -pthread ${OBJS} ${LFLAGS} -o $@
|
||||||
|
|
||||||
|
lib: ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
|
${BACNET_LIB_TARGET}:
|
||||||
|
( cd ${BACNET_LIB_DIR} ; make clean ; make )
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
${CC} -c ${CFLAGS} $*.c -o $@
|
${CC} -c ${CFLAGS} $*.c -o $@
|
||||||
@@ -87,7 +50,7 @@ depend:
|
|||||||
${CC} -MM ${CFLAGS} *.c >> .depend
|
${CC} -MM ${CFLAGS} *.c >> .depend
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini
|
rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
include: .depend
|
include: .depend
|
||||||
|
|
||||||
|
|||||||
@@ -1,83 +1,47 @@
|
|||||||
#Makefile to build BACnet Application for the Linux Port
|
#Makefile to build BACnet Application for the Linux Port
|
||||||
CC = gcc
|
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
|
TARGET = bacepics
|
||||||
#BACDL_DEFINE=-DBACDL_ETHERNET=1
|
|
||||||
#BACDL_DEFINE=-DBACDL_ARCNET=1
|
# Configure the BACnet Datalink Layer
|
||||||
BACDL_DEFINE=-DBACDL_BIP=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)
|
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
||||||
|
|
||||||
|
# Directories
|
||||||
BACNET_PORT = ../../ports/linux
|
BACNET_PORT = ../../ports/linux
|
||||||
BACNET_OBJECT = ../object
|
BACNET_OBJECT = ../object
|
||||||
BACNET_HANDLER = ../handler
|
BACNET_HANDLER = ../handler
|
||||||
BACNET_ROOT = ../..
|
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)
|
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)
|
CFLAGS = -Wall -g $(INCLUDES) $(DEFINES)
|
||||||
|
LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES)
|
||||||
TARGET = bacepics
|
|
||||||
|
|
||||||
SRCS = main.c \
|
SRCS = main.c \
|
||||||
$(BACNET_PORT)/bip-init.c \
|
$(BACNET_ROOT)/key.c \
|
||||||
$(BACNET_PORT)/ethernet.c \
|
$(BACNET_ROOT)/keylist.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
|
|
||||||
|
|
||||||
OBJS = ${SRCS:.c=.o}
|
OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
all: ${TARGET}
|
all: ${BACNET_LIB_TARGET} Makefile ${TARGET}
|
||||||
|
size ${TARGET}
|
||||||
|
|
||||||
${TARGET}: ${OBJS}
|
${TARGET}: ${OBJS} Makefile
|
||||||
${CC} -o $@ ${OBJS}
|
${CC} -pthread ${OBJS} ${LFLAGS} -o $@
|
||||||
|
|
||||||
|
lib: ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
|
${BACNET_LIB_TARGET}:
|
||||||
|
( cd ${BACNET_LIB_DIR} ; make clean ; make )
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
${CC} -c ${CFLAGS} $*.c -o $@
|
${CC} -c ${CFLAGS} $*.c -o $@
|
||||||
@@ -87,6 +51,6 @@ depend:
|
|||||||
${CC} -MM ${CFLAGS} *.c >> .depend
|
${CC} -MM ${CFLAGS} *.c >> .depend
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini
|
rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
include: .depend
|
include: .depend
|
||||||
|
|||||||
@@ -1,80 +1,45 @@
|
|||||||
#Makefile to build BACnet Application for the Linux Port
|
#Makefile to build BACnet Application for the Linux Port
|
||||||
CC = gcc
|
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
|
TARGET = bacarf
|
||||||
#BACDL_DEFINE=-DBACDL_ETHERNET=1
|
|
||||||
#BACDL_DEFINE=-DBACDL_ARCNET=1
|
# Configure the BACnet Datalink Layer
|
||||||
BACDL_DEFINE=-DBACDL_BIP=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)
|
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
||||||
|
|
||||||
|
# Directories
|
||||||
BACNET_PORT = ../../ports/linux
|
BACNET_PORT = ../../ports/linux
|
||||||
BACNET_OBJECT = ../object
|
BACNET_OBJECT = ../object
|
||||||
BACNET_HANDLER = ../handler
|
BACNET_HANDLER = ../handler
|
||||||
BACNET_ROOT = ../..
|
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)
|
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)
|
SRCS = main.c
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
OBJS = ${SRCS:.c=.o}
|
OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
all: ${TARGET}
|
all: ${BACNET_LIB_TARGET} Makefile ${TARGET}
|
||||||
|
size ${TARGET}
|
||||||
|
|
||||||
${TARGET}: ${OBJS}
|
${TARGET}: ${OBJS} Makefile
|
||||||
${CC} -o $@ ${OBJS}
|
${CC} -pthread ${OBJS} ${LFLAGS} -o $@
|
||||||
|
|
||||||
|
lib: ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
|
${BACNET_LIB_TARGET}:
|
||||||
|
( cd ${BACNET_LIB_DIR} ; make clean ; make )
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
${CC} -c ${CFLAGS} $*.c -o $@
|
${CC} -c ${CFLAGS} $*.c -o $@
|
||||||
@@ -84,7 +49,6 @@ depend:
|
|||||||
${CC} -MM ${CFLAGS} *.c >> .depend
|
${CC} -MM ${CFLAGS} *.c >> .depend
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini
|
rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
include: .depend
|
include: .depend
|
||||||
|
|
||||||
|
|||||||
@@ -1,82 +1,46 @@
|
|||||||
#Makefile to build BACnet Application for the Linux Port
|
#Makefile to build BACnet Application for the Linux Port
|
||||||
CC = gcc
|
# Compiler to use
|
||||||
BASEDIR = .
|
CC = gcc
|
||||||
#CFLAGS = -Wall -I.
|
# Executable file name
|
||||||
# -g for debugging with gdb
|
TARGET = bacrp
|
||||||
#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
|
# Configure the BACnet Datalink Layer
|
||||||
#BACDL_DEFINE=-DBACDL_ETHERNET=1
|
#BACDL_DEFINE = -DBACDL_ETHERNET=1
|
||||||
#BACDL_DEFINE=-DBACDL_ARCNET=1
|
#BACDL_DEFINE = -DBACDL_ARCNET=1
|
||||||
BACDL_DEFINE=-DBACDL_BIP=1
|
#BACDL_DEFINE = -DBACDL_MSTP=1
|
||||||
|
BACDL_DEFINE = -DBACDL_BIP=1
|
||||||
|
BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1
|
||||||
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
||||||
|
|
||||||
|
# Directories
|
||||||
BACNET_PORT = ../../ports/linux
|
BACNET_PORT = ../../ports/linux
|
||||||
BACNET_OBJECT = ../object
|
BACNET_OBJECT = ../object
|
||||||
BACNET_HANDLER = ../handler
|
BACNET_HANDLER = ../handler
|
||||||
BACNET_ROOT = ../..
|
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)
|
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)
|
SRCS = main.c
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
OBJS = ${SRCS:.c=.o}
|
OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
all: ${TARGET}
|
all: ${BACNET_LIB_TARGET} Makefile ${TARGET}
|
||||||
|
size ${TARGET}
|
||||||
|
|
||||||
${TARGET}: ${OBJS}
|
${TARGET}: ${OBJS} Makefile
|
||||||
${CC} -o $@ ${OBJS}
|
${CC} -pthread ${OBJS} ${LFLAGS} -o $@
|
||||||
|
|
||||||
|
lib: ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
|
${BACNET_LIB_TARGET}:
|
||||||
|
( cd ${BACNET_LIB_DIR} ; make clean ; make )
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
${CC} -c ${CFLAGS} $*.c -o $@
|
${CC} -c ${CFLAGS} $*.c -o $@
|
||||||
@@ -86,7 +50,6 @@ depend:
|
|||||||
${CC} -MM ${CFLAGS} *.c >> .depend
|
${CC} -MM ${CFLAGS} *.c >> .depend
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini
|
rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
include: .depend
|
include: .depend
|
||||||
|
|
||||||
|
|||||||
@@ -1,83 +1,47 @@
|
|||||||
#Makefile to build BACnet Application for the Linux Port
|
#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
|
# Compiler to use
|
||||||
#BACDL_DEFINE=-DBACDL_ETHERNET=1
|
CC = gcc
|
||||||
#BACDL_DEFINE=-DBACDL_ARCNET=1
|
# Executable file name
|
||||||
BACDL_DEFINE=-DBACDL_BIP=1
|
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)
|
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
||||||
|
|
||||||
|
# Directories
|
||||||
BACNET_PORT = ../../ports/linux
|
BACNET_PORT = ../../ports/linux
|
||||||
BACNET_OBJECT = ../object
|
BACNET_OBJECT = ../object
|
||||||
BACNET_HANDLER = ../handler
|
BACNET_HANDLER = ../handler
|
||||||
BACNET_ROOT = ../..
|
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)
|
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)
|
SRCS = main.c
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
OBJS = ${SRCS:.c=.o}
|
OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
all: ${TARGET}
|
all: ${BACNET_LIB_TARGET} Makefile ${TARGET}
|
||||||
|
size ${TARGET}
|
||||||
|
|
||||||
${TARGET}: ${OBJS}
|
${TARGET}: ${OBJS} Makefile
|
||||||
${CC} -o $@ ${OBJS}
|
${CC} -pthread ${OBJS} ${LFLAGS} -o $@
|
||||||
|
|
||||||
|
lib: ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
|
${BACNET_LIB_TARGET}:
|
||||||
|
( cd ${BACNET_LIB_DIR} ; make clean ; make )
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
${CC} -c ${CFLAGS} $*.c -o $@
|
${CC} -c ${CFLAGS} $*.c -o $@
|
||||||
@@ -87,7 +51,6 @@ depend:
|
|||||||
${CC} -MM ${CFLAGS} *.c >> .depend
|
${CC} -MM ${CFLAGS} *.c >> .depend
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini
|
rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
include: .depend
|
include: .depend
|
||||||
|
|
||||||
|
|||||||
@@ -1,98 +1,47 @@
|
|||||||
#Makefile to build BACnet Application for the Linux Port
|
#Makefile to build BACnet Application for the Linux Port
|
||||||
CC = gcc
|
|
||||||
BASEDIR = .
|
# Compiler to use
|
||||||
#CFLAGS = -Wall -I.
|
CC = gcc
|
||||||
# -g for debugging with gdb
|
# Executable file name
|
||||||
#CFLAGS = -Wall -I. -O2 -g
|
TARGET = bacserv
|
||||||
# Note: you can strip out symbols using the strip command
|
|
||||||
# to get an idea of how big the compile really is.
|
|
||||||
|
|
||||||
# Configure the BACnet Datalink Layer
|
# Configure the BACnet Datalink Layer
|
||||||
#BACDL_DEFINE = -DBACDL_ETHERNET=1
|
#BACDL_DEFINE = -DBACDL_ETHERNET=1
|
||||||
#BACDL_DEFINE = -DBACDL_ARCNET=1
|
#BACDL_DEFINE = -DBACDL_ARCNET=1
|
||||||
#BACDL_DEFINE = -DBACDL_MSTP=1
|
#BACDL_DEFINE = -DBACDL_MSTP=1
|
||||||
BACDL_DEFINE = -DBACDL_BIP=1 -DBIP_DEBUG
|
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)
|
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
||||||
|
|
||||||
|
# Directories
|
||||||
BACNET_PORT = ../../ports/linux
|
BACNET_PORT = ../../ports/linux
|
||||||
BACNET_OBJECT = ../object
|
BACNET_OBJECT = ../object
|
||||||
BACNET_HANDLER = ../handler
|
BACNET_HANDLER = ../handler
|
||||||
BACNET_ROOT = ../..
|
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)
|
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)
|
SRCS = main.c
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
OBJS = ${SRCS:.c=.o}
|
OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
all: ${TARGET}
|
all: ${BACNET_LIB_TARGET} Makefile ${TARGET}
|
||||||
|
size ${TARGET}
|
||||||
|
|
||||||
${TARGET}: ${OBJS}
|
${TARGET}: ${OBJS} Makefile
|
||||||
${CC} -pthread -o $@ ${OBJS}
|
${CC} -pthread ${OBJS} ${LFLAGS} -o $@
|
||||||
|
|
||||||
|
lib: ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
|
${BACNET_LIB_TARGET}:
|
||||||
|
( cd ${BACNET_LIB_DIR} ; make clean ; make )
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
${CC} -c ${CFLAGS} $*.c -o $@
|
${CC} -c ${CFLAGS} $*.c -o $@
|
||||||
@@ -102,7 +51,6 @@ depend:
|
|||||||
${CC} -MM ${CFLAGS} *.c >> .depend
|
${CC} -MM ${CFLAGS} *.c >> .depend
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini
|
rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
include: .depend
|
include: .depend
|
||||||
|
|
||||||
|
|||||||
@@ -1,85 +1,47 @@
|
|||||||
#Makefile to build BACnet Application for the Linux Port
|
#Makefile to build BACnet Application for the Linux Port
|
||||||
CC = gcc
|
|
||||||
BASEDIR = .
|
# Compiler to use
|
||||||
#CFLAGS = -Wall -I.
|
CC = gcc
|
||||||
# -g for debugging with gdb
|
# Executable file name
|
||||||
#CFLAGS = -Wall -I. -O2 -g
|
TARGET = bacts
|
||||||
# Note: you can strip out symbols using the strip command
|
|
||||||
# to get an idea of how big the compile really is.
|
|
||||||
|
|
||||||
# Configure the BACnet Datalink Layer
|
# Configure the BACnet Datalink Layer
|
||||||
#BACDL_DEFINE=-DBACDL_ETHERNET=1
|
#BACDL_DEFINE = -DBACDL_ETHERNET=1
|
||||||
#BACDL_DEFINE=-DBACDL_ARCNET=1
|
#BACDL_DEFINE = -DBACDL_ARCNET=1
|
||||||
BACDL_DEFINE=-DBACDL_BIP=1
|
#BACDL_DEFINE = -DBACDL_MSTP=1
|
||||||
BACNET_DEFINES=-DPRINT_ENABLED=1
|
BACDL_DEFINE = -DBACDL_BIP=1
|
||||||
|
BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1
|
||||||
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
||||||
|
|
||||||
|
# Directories
|
||||||
BACNET_PORT = ../../ports/linux
|
BACNET_PORT = ../../ports/linux
|
||||||
BACNET_OBJECT = ../object
|
BACNET_OBJECT = ../object
|
||||||
BACNET_HANDLER = ../handler
|
BACNET_HANDLER = ../handler
|
||||||
BACNET_ROOT = ../..
|
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)
|
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)
|
SRCS = main.c
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
OBJS = ${SRCS:.c=.o}
|
OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
all: ${TARGET}
|
all: ${BACNET_LIB_TARGET} Makefile ${TARGET}
|
||||||
|
size ${TARGET}
|
||||||
|
|
||||||
${TARGET}: ${OBJS}
|
${TARGET}: ${OBJS} Makefile
|
||||||
${CC} -o $@ ${OBJS}
|
${CC} -pthread ${OBJS} ${LFLAGS} -o $@
|
||||||
|
|
||||||
|
lib: ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
|
${BACNET_LIB_TARGET}:
|
||||||
|
( cd ${BACNET_LIB_DIR} ; make clean ; make )
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
${CC} -c ${CFLAGS} $*.c -o $@
|
${CC} -c ${CFLAGS} $*.c -o $@
|
||||||
@@ -89,7 +51,6 @@ depend:
|
|||||||
${CC} -MM ${CFLAGS} *.c >> .depend
|
${CC} -MM ${CFLAGS} *.c >> .depend
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini
|
rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
include: .depend
|
include: .depend
|
||||||
|
|
||||||
|
|||||||
@@ -1,80 +1,47 @@
|
|||||||
#Makefile to build BACnet Application for the Linux Port
|
#Makefile to build BACnet Application for the Linux Port
|
||||||
CC = gcc
|
|
||||||
BASEDIR = .
|
# Compiler to use
|
||||||
#CFLAGS = -Wall -I.
|
CC = gcc
|
||||||
# -g for debugging with gdb
|
# Executable file name
|
||||||
#CFLAGS = -Wall -I. -O2 -g
|
TARGET = bacucov
|
||||||
# Note: you can strip out symbols using the strip command
|
|
||||||
# to get an idea of how big the compile really is.
|
|
||||||
|
|
||||||
# Configure the BACnet Datalink Layer
|
# Configure the BACnet Datalink Layer
|
||||||
#BACDL_DEFINE=-DBACDL_ETHERNET=1
|
#BACDL_DEFINE = -DBACDL_ETHERNET=1
|
||||||
#BACDL_DEFINE=-DBACDL_ARCNET=1
|
#BACDL_DEFINE = -DBACDL_ARCNET=1
|
||||||
BACDL_DEFINE=-DBACDL_BIP=1
|
#BACDL_DEFINE = -DBACDL_MSTP=1
|
||||||
BACNET_DEFINES=-DMAX_TSM_TRANSACTIONS=0 -DPRINT_ENABLED=1
|
BACDL_DEFINE = -DBACDL_BIP=1
|
||||||
|
BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1
|
||||||
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
||||||
|
|
||||||
|
# Directories
|
||||||
BACNET_PORT = ../../ports/linux
|
BACNET_PORT = ../../ports/linux
|
||||||
BACNET_OBJECT = ../object
|
BACNET_OBJECT = ../object
|
||||||
BACNET_HANDLER = ../handler
|
BACNET_HANDLER = ../handler
|
||||||
BACNET_ROOT = ../..
|
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)
|
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)
|
SRCS = main.c
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
OBJS = ${SRCS:.c=.o}
|
OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
all: ${TARGET}
|
all: ${BACNET_LIB_TARGET} Makefile ${TARGET}
|
||||||
|
size ${TARGET}
|
||||||
|
|
||||||
${TARGET}: ${OBJS}
|
${TARGET}: ${OBJS} Makefile
|
||||||
${CC} -o $@ ${OBJS}
|
${CC} -pthread ${OBJS} ${LFLAGS} -o $@
|
||||||
|
|
||||||
|
lib: ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
|
${BACNET_LIB_TARGET}:
|
||||||
|
( cd ${BACNET_LIB_DIR} ; make clean ; make )
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
${CC} -c ${CFLAGS} $*.c -o $@
|
${CC} -c ${CFLAGS} $*.c -o $@
|
||||||
@@ -84,7 +51,6 @@ depend:
|
|||||||
${CC} -MM ${CFLAGS} *.c >> .depend
|
${CC} -MM ${CFLAGS} *.c >> .depend
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini
|
rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
include: .depend
|
include: .depend
|
||||||
|
|
||||||
|
|||||||
@@ -1,84 +1,47 @@
|
|||||||
#Makefile to build BACnet Application for the Linux Port
|
#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
|
# Compiler to use
|
||||||
#BACDL_DEFINE=-DBACDL_ETHERNET=1
|
CC = gcc
|
||||||
#BACDL_DEFINE=-DBACDL_ARCNET=1
|
# Executable file name
|
||||||
BACDL_DEFINE=-DBACDL_BIP=1
|
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)
|
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
||||||
|
|
||||||
|
# Directories
|
||||||
BACNET_PORT = ../../ports/linux
|
BACNET_PORT = ../../ports/linux
|
||||||
BACNET_OBJECT = ../object
|
BACNET_OBJECT = ../object
|
||||||
BACNET_HANDLER = ../handler
|
BACNET_HANDLER = ../handler
|
||||||
BACNET_ROOT = ../..
|
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)
|
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)
|
SRCS = main.c
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
OBJS = ${SRCS:.c=.o}
|
OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
all: ${TARGET}
|
all: ${BACNET_LIB_TARGET} Makefile ${TARGET}
|
||||||
|
size ${TARGET}
|
||||||
|
|
||||||
${TARGET}: ${OBJS}
|
${TARGET}: ${OBJS} Makefile
|
||||||
${CC} -o $@ ${OBJS}
|
${CC} -pthread ${OBJS} ${LFLAGS} -o $@
|
||||||
|
|
||||||
|
lib: ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
|
${BACNET_LIB_TARGET}:
|
||||||
|
( cd ${BACNET_LIB_DIR} ; make clean ; make )
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
${CC} -c ${CFLAGS} $*.c -o $@
|
${CC} -c ${CFLAGS} $*.c -o $@
|
||||||
@@ -88,7 +51,6 @@ depend:
|
|||||||
${CC} -MM ${CFLAGS} *.c >> .depend
|
${CC} -MM ${CFLAGS} *.c >> .depend
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini
|
rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
include: .depend
|
include: .depend
|
||||||
|
|
||||||
|
|||||||
@@ -1,85 +1,46 @@
|
|||||||
#Makefile to build BACnet Application for the Linux Port
|
#Makefile to build BACnet Application for the Linux Port
|
||||||
CC = gcc
|
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.
|
|
||||||
|
|
||||||
# Set the BACnet datalink layer
|
TARGET = bacwi
|
||||||
|
|
||||||
|
# Configure the BACnet Datalink Layer
|
||||||
#BACDL_DEFINE = -DBACDL_ETHERNET=1
|
#BACDL_DEFINE = -DBACDL_ETHERNET=1
|
||||||
#BACDL_DEFINE = -DBACDL_ARCNET=1
|
#BACDL_DEFINE = -DBACDL_ARCNET=1
|
||||||
BACDL_DEFINE = -DBACDL_BIP=1 -DUSE_INADDR=1
|
#BACDL_DEFINE = -DBACDL_MSTP=1
|
||||||
BACNET_DEFINES = -DMAX_TSM_TRANSACTIONS=0 -DPRINT_ENABLED=1
|
BACDL_DEFINE = -DBACDL_BIP=1
|
||||||
DEFINES=$(BACDL_DEFINE) $(BACNET_DEFINES)
|
BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1
|
||||||
|
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
||||||
|
|
||||||
|
# Directories
|
||||||
BACNET_PORT = ../../ports/linux
|
BACNET_PORT = ../../ports/linux
|
||||||
BACNET_OBJECT = ../object
|
BACNET_OBJECT = ../object
|
||||||
BACNET_HANDLER = ../handler
|
BACNET_HANDLER = ../handler
|
||||||
BACNET_ROOT = ../..
|
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)
|
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)
|
SRCS = main.c
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
OBJS = ${SRCS:.c=.o}
|
OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
all: ${TARGET}
|
all: ${BACNET_LIB_TARGET} Makefile ${TARGET}
|
||||||
|
size ${TARGET}
|
||||||
|
|
||||||
${TARGET}: ${OBJS}
|
${TARGET}: ${OBJS} Makefile
|
||||||
${CC} -o $@ ${OBJS}
|
${CC} -pthread ${OBJS} ${LFLAGS} -o $@
|
||||||
|
|
||||||
|
lib: ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
|
${BACNET_LIB_TARGET}:
|
||||||
|
( cd ${BACNET_LIB_DIR} ; make clean ; make )
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
${CC} -c ${CFLAGS} $*.c -o $@
|
${CC} -c ${CFLAGS} $*.c -o $@
|
||||||
@@ -89,7 +50,6 @@ depend:
|
|||||||
${CC} -MM ${CFLAGS} *.c >> .depend
|
${CC} -MM ${CFLAGS} *.c >> .depend
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini
|
rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
include: .depend
|
include: .depend
|
||||||
|
|
||||||
|
|||||||
@@ -1,82 +1,47 @@
|
|||||||
#Makefile to build BACnet Application for the Linux Port
|
#Makefile to build BACnet Application for the Linux Port
|
||||||
CC = gcc
|
|
||||||
BASEDIR = .
|
# Compiler to use
|
||||||
#CFLAGS = -Wall -I.
|
CC = gcc
|
||||||
# -g for debugging with gdb
|
# Executable file name
|
||||||
#CFLAGS = -Wall -I. -O2 -g
|
TARGET = bacawf
|
||||||
# Note: you can strip out symbols using the strip command
|
|
||||||
# to get an idea of how big the compile really is.
|
|
||||||
|
|
||||||
# Configure the BACnet Datalink Layer
|
# Configure the BACnet Datalink Layer
|
||||||
#BACDL_DEFINE=-DBACDL_ETHERNET=1
|
#BACDL_DEFINE = -DBACDL_ETHERNET=1
|
||||||
#BACDL_DEFINE=-DBACDL_ARCNET=1
|
#BACDL_DEFINE = -DBACDL_ARCNET=1
|
||||||
BACDL_DEFINE=-DBACDL_BIP=1
|
#BACDL_DEFINE = -DBACDL_MSTP=1
|
||||||
BACNET_DEFINES=-DTSM_ENABLED=1 -DPRINT_ENABLED=1
|
BACDL_DEFINE = -DBACDL_BIP=1
|
||||||
|
BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1
|
||||||
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
||||||
|
|
||||||
|
# Directories
|
||||||
BACNET_PORT = ../../ports/linux
|
BACNET_PORT = ../../ports/linux
|
||||||
BACNET_OBJECT = ../object
|
BACNET_OBJECT = ../object
|
||||||
BACNET_HANDLER = ../handler
|
BACNET_HANDLER = ../handler
|
||||||
BACNET_ROOT = ../..
|
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)
|
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)
|
SRCS = main.c
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
OBJS = ${SRCS:.c=.o}
|
OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
all: ${TARGET}
|
all: ${BACNET_LIB_TARGET} Makefile ${TARGET}
|
||||||
|
size ${TARGET}
|
||||||
|
|
||||||
${TARGET}: ${OBJS}
|
${TARGET}: ${OBJS} Makefile
|
||||||
${CC} -o $@ ${OBJS}
|
${CC} -pthread ${OBJS} ${LFLAGS} -o $@
|
||||||
|
|
||||||
|
lib: ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
|
${BACNET_LIB_TARGET}:
|
||||||
|
( cd ${BACNET_LIB_DIR} ; make clean ; make )
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
${CC} -c ${CFLAGS} $*.c -o $@
|
${CC} -c ${CFLAGS} $*.c -o $@
|
||||||
@@ -86,7 +51,6 @@ depend:
|
|||||||
${CC} -MM ${CFLAGS} *.c >> .depend
|
${CC} -MM ${CFLAGS} *.c >> .depend
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini
|
rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
include: .depend
|
include: .depend
|
||||||
|
|
||||||
|
|||||||
@@ -1,82 +1,47 @@
|
|||||||
#Makefile to build BACnet Application for the Linux Port
|
#Makefile to build BACnet Application for the Linux Port
|
||||||
CC = gcc
|
|
||||||
BASEDIR = .
|
# Compiler to use
|
||||||
#CFLAGS = -Wall -I.
|
CC = gcc
|
||||||
# -g for debugging with gdb
|
# Executable file name
|
||||||
#CFLAGS = -Wall -I. -O2 -g
|
TARGET = bacwp
|
||||||
# Note: you can strip out symbols using the strip command
|
|
||||||
# to get an idea of how big the compile really is.
|
|
||||||
|
|
||||||
# Configure the BACnet Datalink Layer
|
# Configure the BACnet Datalink Layer
|
||||||
#BACDL_DEFINE=-DBACDL_ETHERNET=1
|
#BACDL_DEFINE = -DBACDL_ETHERNET=1
|
||||||
#BACDL_DEFINE=-DBACDL_ARCNET=1
|
#BACDL_DEFINE = -DBACDL_ARCNET=1
|
||||||
BACDL_DEFINE=-DBACDL_BIP=1
|
#BACDL_DEFINE = -DBACDL_MSTP=1
|
||||||
BACNET_DEFINES=-DPRINT_ENABLED=1
|
BACDL_DEFINE = -DBACDL_BIP=1
|
||||||
|
BACNET_DEFINES = -DBACFILE=1 -DPRINT_ENABLED=1
|
||||||
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
||||||
|
|
||||||
|
# Directories
|
||||||
BACNET_PORT = ../../ports/linux
|
BACNET_PORT = ../../ports/linux
|
||||||
BACNET_OBJECT = ../object
|
BACNET_OBJECT = ../object
|
||||||
BACNET_HANDLER = ../handler
|
BACNET_HANDLER = ../handler
|
||||||
BACNET_ROOT = ../..
|
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)
|
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)
|
SRCS = main.c
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
OBJS = ${SRCS:.c=.o}
|
OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
all: ${TARGET}
|
all: ${BACNET_LIB_TARGET} Makefile ${TARGET}
|
||||||
|
size ${TARGET}
|
||||||
|
|
||||||
${TARGET}: ${OBJS}
|
${TARGET}: ${OBJS} Makefile
|
||||||
${CC} -o $@ ${OBJS}
|
${CC} -pthread ${OBJS} ${LFLAGS} -o $@
|
||||||
|
|
||||||
|
lib: ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
|
${BACNET_LIB_TARGET}:
|
||||||
|
( cd ${BACNET_LIB_DIR} ; make clean ; make )
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
${CC} -c ${CFLAGS} $*.c -o $@
|
${CC} -c ${CFLAGS} $*.c -o $@
|
||||||
@@ -86,7 +51,6 @@ depend:
|
|||||||
${CC} -MM ${CFLAGS} *.c >> .depend
|
${CC} -MM ${CFLAGS} *.c >> .depend
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf core ${TARGET} $(OBJS) *.bak ports/linux/*.bak *.1 *.ini
|
rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET}
|
||||||
|
|
||||||
include: .depend
|
include: .depend
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,7 @@
|
|||||||
|
|
||||||
/* project includes */
|
/* project includes */
|
||||||
#include "bacdef.h"
|
#include "bacdef.h"
|
||||||
|
#include "bacaddr.h"
|
||||||
#include "mstp.h"
|
#include "mstp.h"
|
||||||
#include "dlmstp.h"
|
#include "dlmstp.h"
|
||||||
#include "rs485.h"
|
#include "rs485.h"
|
||||||
@@ -299,7 +300,6 @@ int dlmstp_get_transmit_packet(
|
|||||||
struct timeval select_timeout;
|
struct timeval select_timeout;
|
||||||
fd_set read_fds;
|
fd_set read_fds;
|
||||||
int max = 0;
|
int max = 0;
|
||||||
uint8_t destination = 0; /* destination address */
|
|
||||||
|
|
||||||
/* Make sure the socket is open */
|
/* Make sure the socket is open */
|
||||||
if (Transmit_Client_SockFD <= 0)
|
if (Transmit_Client_SockFD <= 0)
|
||||||
@@ -380,30 +380,6 @@ uint16_t MSTP_Get_Send(
|
|||||||
return pdu_len;
|
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(
|
bool dlmstp_compare_data_expecting_reply(
|
||||||
uint8_t *request_pdu,
|
uint8_t *request_pdu,
|
||||||
uint16_t request_pdu_len,
|
uint16_t request_pdu_len,
|
||||||
@@ -445,7 +421,7 @@ bool dlmstp_compare_data_expecting_reply(
|
|||||||
else
|
else
|
||||||
request.service_choice = request_pdu[offset+3];
|
request.service_choice = request_pdu[offset+3];
|
||||||
/* decode the reply data */
|
/* 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],
|
offset = npdu_decode(&reply_pdu[0],
|
||||||
&reply.address, NULL, &reply.npdu_data);
|
&reply.address, NULL, &reply.npdu_data);
|
||||||
if (reply.npdu_data.network_layer_message) {
|
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) {
|
if (request.npdu_data.priority != reply.npdu_data.priority) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!dlmstp_same_bacnet_address(&request.address, &reply.address)) {
|
if (!bacnet_address_same(&request.address, &reply.address)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -518,12 +494,12 @@ uint16_t MSTP_Get_Reply(
|
|||||||
unsigned timeout) /* milliseconds to wait for a packet */
|
unsigned timeout) /* milliseconds to wait for a packet */
|
||||||
{
|
{
|
||||||
int received_bytes = 0;
|
int received_bytes = 0;
|
||||||
DLMSTP_PACKET packet;
|
DLMSTP_PACKET Transmit_Packet;
|
||||||
uint16_t pdu_len = 0; /* return value */
|
uint16_t pdu_len = 0; /* return value */
|
||||||
uint8_t destination = 0; /* destination address */
|
uint8_t destination = 0; /* destination address */
|
||||||
bool matched = false;
|
bool matched = false;
|
||||||
|
|
||||||
received_bytes = dlmstp_get_transmit_packet(&packet, timeout);
|
received_bytes = dlmstp_get_transmit_packet(&Transmit_Packet, timeout);
|
||||||
if (received_bytes <= 0)
|
if (received_bytes <= 0)
|
||||||
return 0;
|
return 0;
|
||||||
/* load destination MAC address */
|
/* load destination MAC address */
|
||||||
@@ -549,14 +525,16 @@ uint16_t MSTP_Get_Reply(
|
|||||||
&mstp_port->OutputBuffer[0], /* <-- loading this */
|
&mstp_port->OutputBuffer[0], /* <-- loading this */
|
||||||
mstp_port->OutputBufferSize,
|
mstp_port->OutputBufferSize,
|
||||||
Transmit_Packet.frame_type,
|
Transmit_Packet.frame_type,
|
||||||
destination, mstp_port->This_Station,
|
destination,
|
||||||
|
mstp_port->This_Station,
|
||||||
&Transmit_Packet.pdu[0],
|
&Transmit_Packet.pdu[0],
|
||||||
Transmit_Packet.pdu_len);
|
Transmit_Packet.pdu_len);
|
||||||
/* not used here, but setting it anyway */
|
/* not used here, but setting it anyway */
|
||||||
Transmit_Packet.ready = false;
|
Transmit_Packet.ready = false;
|
||||||
} else {
|
} else {
|
||||||
/* put it back into the queue */
|
/* 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;
|
return pdu_len;
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "bacdef.h"
|
#include "bacdef.h"
|
||||||
|
#include "bacaddr.h"
|
||||||
#include "mstp.h"
|
#include "mstp.h"
|
||||||
#include "dlmstp.h"
|
#include "dlmstp.h"
|
||||||
#include "rs485.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 */
|
/* returns number of bytes sent on success, zero on failure */
|
||||||
int dlmstp_send_pdu(BACNET_ADDRESS * dest, /* destination address */
|
int dlmstp_send_pdu(BACNET_ADDRESS * dest, /* destination address */
|
||||||
BACNET_NPDU_DATA * npdu_data, /* network information */
|
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++) {
|
for (i = 0; i < pdu_len; i++) {
|
||||||
Transmit_Packet.pdu[i] = pdu[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;
|
bytes_sent = pdu_len + MAX_HEADER;
|
||||||
Transmit_Packet.ready = true;
|
Transmit_Packet.ready = true;
|
||||||
}
|
}
|
||||||
@@ -317,30 +301,6 @@ uint16_t MSTP_Get_Send(
|
|||||||
return pdu_len;
|
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(
|
bool dlmstp_compare_data_expecting_reply(
|
||||||
uint8_t *request_pdu,
|
uint8_t *request_pdu,
|
||||||
uint16_t request_pdu_len,
|
uint16_t request_pdu_len,
|
||||||
@@ -382,7 +342,7 @@ bool dlmstp_compare_data_expecting_reply(
|
|||||||
else
|
else
|
||||||
request.service_choice = request_pdu[offset+3];
|
request.service_choice = request_pdu[offset+3];
|
||||||
/* decode the reply data */
|
/* 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],
|
offset = npdu_decode(&reply_pdu[0],
|
||||||
&reply.address, NULL, &reply.npdu_data);
|
&reply.address, NULL, &reply.npdu_data);
|
||||||
if (reply.npdu_data.network_layer_message) {
|
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) {
|
if (request.npdu_data.priority != reply.npdu_data.priority) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!dlmstp_same_bacnet_address(&request.address, &reply.address)) {
|
if (!bacnet_address_same(&request.address, &reply.address)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -47,6 +47,7 @@
|
|||||||
#include "datalink.h"
|
#include "datalink.h"
|
||||||
#include "handlers.h"
|
#include "handlers.h"
|
||||||
#include "address.h"
|
#include "address.h"
|
||||||
|
#include "bacaddr.h"
|
||||||
|
|
||||||
/* Transaction State Machine */
|
/* Transaction State Machine */
|
||||||
/* Really only needed for segmented messages */
|
/* 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;
|
TSM_List[index].apdu_len = apdu_len;
|
||||||
npdu_copy_data(&TSM_List[index].npdu_data, ndpu_data);
|
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];
|
apdu[j] = TSM_List[index].apdu[j];
|
||||||
}
|
}
|
||||||
npdu_copy_data(ndpu_data, &TSM_List[index].npdu_data);
|
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;
|
found = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user