diff --git a/bacnet-stack/build.bat b/bacnet-stack/build.bat index a54b5543..5be1be67 100644 --- a/bacnet-stack/build.bat +++ b/bacnet-stack/build.bat @@ -1,5 +1,9 @@ +@echo off +rem Build for Borland 5.5 tools +rem set BORLAND_DIR=c:\borland\bcc55 +rem %BORLAND_DIR%\bin\make -f makefile.b32 clean +rem %BORLAND_DIR%\bin\make -f makefile.b32 all -set BORLAND_DIR=c:\borland\bcc55 -c:\borland\bcc55\bin\make -f makefile.b32 clean -c:\borland\bcc55\bin\make -f makefile.b32 all +rem Build for MinGW +make BACNET_PORT=win32 OPTIMIZATION=-Os DEBUGGING= clean all diff --git a/bacnet-stack/demo/dcc/Makefile b/bacnet-stack/demo/dcc/Makefile index c2562ffc..3d88f8fe 100644 --- a/bacnet-stack/demo/dcc/Makefile +++ b/bacnet-stack/demo/dcc/Makefile @@ -22,19 +22,31 @@ BACNET_LIB_NAME = bacnet BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a # Compiler Setup INCLUDES = -I$(BACNET_INCLUDE) -I$(BACNET_PORT_DIR) -LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +ifeq (${BACNET_PORT},linux) +PFLAGS = -pthread +TARGET_BIN = ${TARGET} +LIBRARIES=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME),-lc,-lgcc,-lm +endif +ifeq (${BACNET_PORT},win32) +TARGET_BIN = ${TARGET}.exe +LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARIES=$(LIBRARY1),$(LIBRARY2) +endif +DEBUGGING = -g +OPTIMIZATION = -O0 +CFLAGS = -Wall $(DEBUGGING) $(OPTIMIZATION) $(INCLUDES) $(DEFINES) LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${BACNET_LIB_TARGET} Makefile ${TARGET} - size ${TARGET} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN} + size ${TARGET_BIN} -${TARGET}: ${OBJS} Makefile - ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ +${TARGET_BIN}: ${OBJS} Makefile + ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ lib: ${BACNET_LIB_TARGET} @@ -49,7 +61,7 @@ depend: ${CC} -MM ${CFLAGS} *.c >> .depend clean: - rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} + rm -f core ${TARGET_BIN} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/demo/epics/Makefile b/bacnet-stack/demo/epics/Makefile index 43bbdabc..db85a0c5 100644 --- a/bacnet-stack/demo/epics/Makefile +++ b/bacnet-stack/demo/epics/Makefile @@ -22,8 +22,20 @@ BACNET_LIB_NAME = bacnet BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a # Compiler Setup INCLUDES = -I$(BACNET_INCLUDE) -I$(BACNET_PORT_DIR) -LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +ifeq (${BACNET_PORT},linux) +PFLAGS = -pthread +TARGET_BIN = ${TARGET} +LIBRARIES=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME),-lc,-lgcc,-lm +endif +ifeq (${BACNET_PORT},win32) +TARGET_BIN = ${TARGET}.exe +LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARIES=$(LIBRARY1),$(LIBRARY2) +endif +DEBUGGING = -g +OPTIMIZATION = -O0 +CFLAGS = -Wall $(DEBUGGING) $(OPTIMIZATION) $(INCLUDES) $(DEFINES) LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) SRCS = main.c \ @@ -32,11 +44,11 @@ SRCS = main.c \ OBJS = ${SRCS:.c=.o} -all: ${BACNET_LIB_TARGET} Makefile ${TARGET} - size ${TARGET} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN} + size ${TARGET_BIN} -${TARGET}: ${OBJS} Makefile - ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ +${TARGET_BIN}: ${OBJS} Makefile + ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ lib: ${BACNET_LIB_TARGET} @@ -51,6 +63,6 @@ depend: ${CC} -MM ${CFLAGS} *.c >> .depend clean: - rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} + rm -f core ${TARGET_BIN} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/demo/readfile/Makefile b/bacnet-stack/demo/readfile/Makefile index db1b48fa..613fcb8e 100644 --- a/bacnet-stack/demo/readfile/Makefile +++ b/bacnet-stack/demo/readfile/Makefile @@ -21,19 +21,31 @@ BACNET_LIB_NAME = bacnet BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a # Compiler Setup INCLUDES = -I$(BACNET_INCLUDE) -I$(BACNET_PORT_DIR) -LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +ifeq (${BACNET_PORT},linux) +PFLAGS = -pthread +TARGET_BIN = ${TARGET} +LIBRARIES=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME),-lc,-lgcc,-lm +endif +ifeq (${BACNET_PORT},win32) +TARGET_BIN = ${TARGET}.exe +LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARIES=$(LIBRARY1),$(LIBRARY2) +endif +DEBUGGING = -g +OPTIMIZATION = -O0 +CFLAGS = -Wall $(DEBUGGING) $(OPTIMIZATION) $(INCLUDES) $(DEFINES) LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${BACNET_LIB_TARGET} Makefile ${TARGET} - size ${TARGET} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN} + size ${TARGET_BIN} -${TARGET}: ${OBJS} Makefile - ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ +${TARGET_BIN}: ${OBJS} Makefile + ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ lib: ${BACNET_LIB_TARGET} @@ -48,6 +60,6 @@ depend: ${CC} -MM ${CFLAGS} *.c >> .depend clean: - rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} + rm -f core ${TARGET_BIN} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/demo/readprop/Makefile b/bacnet-stack/demo/readprop/Makefile index f4bcd041..82061483 100644 --- a/bacnet-stack/demo/readprop/Makefile +++ b/bacnet-stack/demo/readprop/Makefile @@ -24,23 +24,29 @@ BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a INCLUDES = -I$(BACNET_INCLUDE) -I$(BACNET_PORT_DIR) ifeq (${BACNET_PORT},linux) PFLAGS = -pthread +TARGET_BIN = ${TARGET} LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) endif ifeq (${BACNET_PORT},win32) -LIBRARIES=-lws2_32,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +TARGET_BIN = ${TARGET}.exe +LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +DEBUGGING = -g +OPTIMIZATION = -O0 +CFLAGS = -Wall $(DEBUGGING) $(OPTIMIZATION) $(INCLUDES) $(DEFINES) LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${BACNET_LIB_TARGET} Makefile ${TARGET} - size ${TARGET} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN} + size ${TARGET_BIN} -${TARGET}: ${OBJS} Makefile - ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ +${TARGET_BIN}: ${OBJS} Makefile + ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ lib: ${BACNET_LIB_TARGET} @@ -55,6 +61,6 @@ depend: ${CC} -MM ${CFLAGS} *.c >> .depend clean: - rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} + rm -f core ${TARGET_BIN} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/demo/reinit/Makefile b/bacnet-stack/demo/reinit/Makefile index 1bd88a6a..ba7b024b 100644 --- a/bacnet-stack/demo/reinit/Makefile +++ b/bacnet-stack/demo/reinit/Makefile @@ -24,19 +24,31 @@ BACNET_LIB_NAME = bacnet BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a # Compiler Setup INCLUDES = -I$(BACNET_INCLUDE) -I$(BACNET_PORT_DIR) +ifeq (${BACNET_PORT},linux) +PFLAGS = -pthread +TARGET_BIN = ${TARGET} LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +endif +ifeq (${BACNET_PORT},win32) +TARGET_BIN = ${TARGET}.exe +LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARIES=$(LIBRARY1),$(LIBRARY2) +endif +DEBUGGING = -g +OPTIMIZATION = -O0 +CFLAGS = -Wall $(DEBUGGING) $(OPTIMIZATION) $(INCLUDES) $(DEFINES) LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${BACNET_LIB_TARGET} Makefile ${TARGET} - size ${TARGET} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN} + size ${TARGET_BIN} -${TARGET}: ${OBJS} Makefile - ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ +${TARGET_BIN}: ${OBJS} Makefile + ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ lib: ${BACNET_LIB_TARGET} @@ -51,6 +63,6 @@ depend: ${CC} -MM ${CFLAGS} *.c >> .depend clean: - rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} + rm -f core ${TARGET_BIN} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/demo/server/Makefile b/bacnet-stack/demo/server/Makefile index 08b8dda8..af692894 100644 --- a/bacnet-stack/demo/server/Makefile +++ b/bacnet-stack/demo/server/Makefile @@ -24,19 +24,31 @@ BACNET_LIB_NAME = bacnet BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a # Compiler Setup INCLUDES = -I$(BACNET_INCLUDE) -I$(BACNET_PORT_DIR) +ifeq (${BACNET_PORT},linux) +PFLAGS = -pthread +TARGET_BIN = ${TARGET} LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) -fdata-sections -ffunction-sections +endif +ifeq (${BACNET_PORT},win32) +TARGET_BIN = ${TARGET}.exe +LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARIES=$(LIBRARY1),$(LIBRARY2) +endif +DEBUGGING = -g +OPTIMIZATION = -O0 +CFLAGS = -Wall $(DEBUGGING) $(OPTIMIZATION) $(INCLUDES) $(DEFINES) -fdata-sections -ffunction-sections LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES),--gc-sections SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${BACNET_LIB_TARGET} Makefile ${TARGET} - size ${TARGET} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN} + size ${TARGET_BIN} -${TARGET}: ${OBJS} Makefile - ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ +${TARGET_BIN}: ${OBJS} Makefile + ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ lib: ${BACNET_LIB_TARGET} @@ -51,6 +63,6 @@ depend: ${CC} -MM ${CFLAGS} *.c >> .depend clean: - rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} + rm -f core ${TARGET_BIN} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/demo/timesync/Makefile b/bacnet-stack/demo/timesync/Makefile index 822d9b20..933cc6a8 100644 --- a/bacnet-stack/demo/timesync/Makefile +++ b/bacnet-stack/demo/timesync/Makefile @@ -24,19 +24,31 @@ BACNET_LIB_NAME = bacnet BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a # Compiler Setup INCLUDES = -I$(BACNET_INCLUDE) -I$(BACNET_PORT_DIR) +ifeq (${BACNET_PORT},linux) +PFLAGS = -pthread +TARGET_BIN = ${TARGET} LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +endif +ifeq (${BACNET_PORT},win32) +TARGET_BIN = ${TARGET}.exe +LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARIES=$(LIBRARY1),$(LIBRARY2) +endif +DEBUGGING = -g +OPTIMIZATION = -O0 +CFLAGS = -Wall $(DEBUGGING) $(OPTIMIZATION) $(INCLUDES) $(DEFINES) LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${BACNET_LIB_TARGET} Makefile ${TARGET} - size ${TARGET} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN} + size ${TARGET_BIN} -${TARGET}: ${OBJS} Makefile - ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ +${TARGET_BIN}: ${OBJS} Makefile + ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ lib: ${BACNET_LIB_TARGET} @@ -51,6 +63,6 @@ depend: ${CC} -MM ${CFLAGS} *.c >> .depend clean: - rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} + rm -f core ${TARGET_BIN} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/demo/ucov/Makefile b/bacnet-stack/demo/ucov/Makefile index 296dc508..e8c92b3c 100644 --- a/bacnet-stack/demo/ucov/Makefile +++ b/bacnet-stack/demo/ucov/Makefile @@ -24,19 +24,31 @@ BACNET_LIB_NAME = bacnet BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a # Compiler Setup INCLUDES = -I$(BACNET_INCLUDE) -I$(BACNET_PORT_DIR) +ifeq (${BACNET_PORT},linux) +PFLAGS = -pthread +TARGET_BIN = ${TARGET} LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +endif +ifeq (${BACNET_PORT},win32) +TARGET_BIN = ${TARGET}.exe +LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARIES=$(LIBRARY1),$(LIBRARY2) +endif +DEBUGGING = -g +OPTIMIZATION = -O0 +CFLAGS = -Wall $(DEBUGGING) $(OPTIMIZATION) $(INCLUDES) $(DEFINES) LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${BACNET_LIB_TARGET} Makefile ${TARGET} - size ${TARGET} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN} + size ${TARGET_BIN} -${TARGET}: ${OBJS} Makefile - ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ +${TARGET_BIN}: ${OBJS} Makefile + ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ lib: ${BACNET_LIB_TARGET} @@ -51,6 +63,6 @@ depend: ${CC} -MM ${CFLAGS} *.c >> .depend clean: - rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} + rm -f core ${TARGET_BIN} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/demo/whohas/Makefile b/bacnet-stack/demo/whohas/Makefile index f9820d2c..881136e1 100644 --- a/bacnet-stack/demo/whohas/Makefile +++ b/bacnet-stack/demo/whohas/Makefile @@ -24,19 +24,31 @@ BACNET_LIB_NAME = bacnet BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a # Compiler Setup INCLUDES = -I$(BACNET_INCLUDE) -I$(BACNET_PORT_DIR) +ifeq (${BACNET_PORT},linux) +PFLAGS = -pthread +TARGET_BIN = ${TARGET} LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +endif +ifeq (${BACNET_PORT},win32) +TARGET_BIN = ${TARGET}.exe +LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARIES=$(LIBRARY1),$(LIBRARY2) +endif +DEBUGGING = -g +OPTIMIZATION = -O0 +CFLAGS = -Wall $(DEBUGGING) $(OPTIMIZATION) $(INCLUDES) $(DEFINES) LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${BACNET_LIB_TARGET} Makefile ${TARGET} - size ${TARGET} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN} + size ${TARGET_BIN} -${TARGET}: ${OBJS} Makefile - ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ +${TARGET_BIN}: ${OBJS} Makefile + ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ lib: ${BACNET_LIB_TARGET} @@ -51,6 +63,6 @@ depend: ${CC} -MM ${CFLAGS} *.c >> .depend clean: - rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} + rm -f core ${TARGET_BIN} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/demo/whois/Makefile b/bacnet-stack/demo/whois/Makefile index e3fadeb5..0d570151 100644 --- a/bacnet-stack/demo/whois/Makefile +++ b/bacnet-stack/demo/whois/Makefile @@ -22,19 +22,31 @@ BACNET_LIB_NAME = bacnet BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a # Compiler Setup INCLUDES = -I$(BACNET_INCLUDE) -I$(BACNET_PORT_DIR) +ifeq (${BACNET_PORT},linux) +PFLAGS = -pthread +TARGET_BIN = ${TARGET} LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +endif +ifeq (${BACNET_PORT},win32) +TARGET_BIN = ${TARGET}.exe +LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARIES=$(LIBRARY1),$(LIBRARY2) +endif +DEBUGGING = -g +OPTIMIZATION = -O0 +CFLAGS = -Wall $(DEBUGGING) $(OPTIMIZATION) $(INCLUDES) $(DEFINES) LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${BACNET_LIB_TARGET} Makefile ${TARGET} - size ${TARGET} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN} + size ${TARGET_BIN} -${TARGET}: ${OBJS} Makefile - ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ +${TARGET_BIN}: ${OBJS} Makefile + ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ lib: ${BACNET_LIB_TARGET} @@ -49,6 +61,6 @@ depend: ${CC} -MM ${CFLAGS} *.c >> .depend clean: - rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} + rm -f core ${TARGET_BIN} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/demo/writefile/Makefile b/bacnet-stack/demo/writefile/Makefile index a7dd1cac..d6d5d143 100644 --- a/bacnet-stack/demo/writefile/Makefile +++ b/bacnet-stack/demo/writefile/Makefile @@ -24,19 +24,31 @@ BACNET_LIB_NAME = bacnet BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a # Compiler Setup INCLUDES = -I$(BACNET_INCLUDE) -I$(BACNET_PORT_DIR) +ifeq (${BACNET_PORT},linux) +PFLAGS = -pthread +TARGET_BIN = ${TARGET} LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +endif +ifeq (${BACNET_PORT},win32) +TARGET_BIN = ${TARGET}.exe +LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARIES=$(LIBRARY1),$(LIBRARY2) +endif +DEBUGGING = -g +OPTIMIZATION = -O0 +CFLAGS = -Wall $(DEBUGGING) $(OPTIMIZATION) $(INCLUDES) $(DEFINES) LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${BACNET_LIB_TARGET} Makefile ${TARGET} - size ${TARGET} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN} + size ${TARGET_BIN} -${TARGET}: ${OBJS} Makefile - ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ +${TARGET_BIN}: ${OBJS} Makefile + ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ lib: ${BACNET_LIB_TARGET} @@ -51,6 +63,6 @@ depend: ${CC} -MM ${CFLAGS} *.c >> .depend clean: - rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} + rm -f core ${TARGET_BIN} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/demo/writeprop/Makefile b/bacnet-stack/demo/writeprop/Makefile index adccbb5a..4f13ba13 100644 --- a/bacnet-stack/demo/writeprop/Makefile +++ b/bacnet-stack/demo/writeprop/Makefile @@ -24,19 +24,31 @@ BACNET_LIB_NAME = bacnet BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a # Compiler Setup INCLUDES = -I$(BACNET_INCLUDE) -I$(BACNET_PORT_DIR) +ifeq (${BACNET_PORT},linux) +PFLAGS = -pthread +TARGET_BIN = ${TARGET} LIBRARIES=-lc,-lgcc,-lm,-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -CFLAGS = -Wall -g $(INCLUDES) $(DEFINES) +endif +ifeq (${BACNET_PORT},win32) +TARGET_BIN = ${TARGET}.exe +LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARIES=$(LIBRARY1),$(LIBRARY2) +endif +DEBUGGING = -g +OPTIMIZATION = -O0 +CFLAGS = -Wall $(DEBUGGING) $(OPTIMIZATION) $(INCLUDES) $(DEFINES) LFLAGS = -Wl,-Map=$(TARGET).map,$(LIBRARIES) SRCS = main.c OBJS = ${SRCS:.c=.o} -all: ${BACNET_LIB_TARGET} Makefile ${TARGET} - size ${TARGET} +all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN} + size ${TARGET_BIN} -${TARGET}: ${OBJS} Makefile - ${CC} -pthread ${OBJS} ${LFLAGS} -o $@ +${TARGET_BIN}: ${OBJS} Makefile + ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ lib: ${BACNET_LIB_TARGET} @@ -51,6 +63,6 @@ depend: ${CC} -MM ${CFLAGS} *.c >> .depend clean: - rm -f core ${TARGET} ${OBJS} ${BACNET_LIB_TARGET} + rm -f core ${TARGET_BIN} ${OBJS} ${BACNET_LIB_TARGET} include: .depend diff --git a/bacnet-stack/include/config.h b/bacnet-stack/include/config.h index 1cbf29ee..00994598 100644 --- a/bacnet-stack/include/config.h +++ b/bacnet-stack/include/config.h @@ -12,9 +12,10 @@ /* optional configuration for BACnet/IP datalink layers */ #if (defined(BACDL_BIP) || defined(BACDL_ALL)) -#if !defined(USE_INADDR) -#define USE_INADDR 1 -#endif +/* other BIP defines (define as 1 to enable): + USE_INADDR - uses INADDR_BROADCAST for broadcast and binds using INADDR_ANY + USE_CLASSADDR = uses IN_CLASSx_HOST where x=A,B,C or D for broadcast +*/ #if !defined(BBMD_ENABLED) #define BBMD_ENABLED 1 #endif diff --git a/bacnet-stack/lib/Makefile b/bacnet-stack/lib/Makefile index 1b60e8a5..d599a264 100644 --- a/bacnet-stack/lib/Makefile +++ b/bacnet-stack/lib/Makefile @@ -26,7 +26,9 @@ BACNET_INCLUDE = ../include # compiler configuration #STANDARDS = -std=c99 INCLUDES = -I$(BACNET_INCLUDE) -I$(BACNET_PORT_DIR) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) -CFLAGS = -Wall -g $(STANDARDS) $(INCLUDES) $(DEFINES) +OPTIMIZATION = -O0 +DEBUGGING = -g +CFLAGS = -Wall $(DEBUGGING) $(OPTIMIZATION) $(STANDARDS) $(INCLUDES) $(DEFINES) CORE_SRC = \ $(BACNET_CORE)/apdu.c \ diff --git a/bacnet-stack/ports/win32/bip-init.c b/bacnet-stack/ports/win32/bip-init.c index 9420ecc9..d2d0aae0 100644 --- a/bacnet-stack/ports/win32/bip-init.c +++ b/bacnet-stack/ports/win32/bip-init.c @@ -82,7 +82,9 @@ static long gethostaddr( return *(long *) host_ent->h_addr; } -#if !defined(USE_INADDR) && !defined(USE_CLASSADDR) +#if (!defined(USE_INADDR) || (USE_INADDR == 0)) && \ + (!defined(USE_CLASSADDR) || (USE_CLASSADDR == 0)) +/* returns the subnet mask in network byte order */ static uint32_t getIpMaskForIpAddress( uint32_t ipAddress ) { /* Allocate information for up to 16 NICs */ @@ -131,12 +133,12 @@ static uint32_t getIpMaskForIpAddress( uint32_t ipAddress ) static void set_broadcast_address(uint32_t net_address) { -#if USE_INADDR +#if defined(USE_INADDR) && USE_INADDR /* Note: sometimes INADDR_BROADCAST does not let me get any unicast messages. Not sure why... */ - (void) net_address; + net_address = net_address; bip_set_broadcast_addr(INADDR_BROADCAST); -#elif USE_CLASSADDR +#elif defined(USE_CLASSADDR) && USE_CLASSADDR long broadcast_address = 0; if (IN_CLASSA(ntohl(net_address))) @@ -155,14 +157,18 @@ static void set_broadcast_address(uint32_t net_address) broadcast_address = INADDR_BROADCAST; bip_set_broadcast_addr(htonl(broadcast_address)); #else + /* these are network byte order variables */ long broadcast_address = 0; - long mask = 0; + long net_mask = 0; - mask = getIpMaskForIpAddress( net_address ); - - broadcast_address = (ntohl(net_address) & ~mask) | mask; - - bip_set_broadcast_addr(htonl(broadcast_address)); + net_mask = getIpMaskForIpAddress( net_address ); + if (BIP_Debug) { + struct in_addr address; + address.s_addr = net_mask; + printf("IP Mask: %s\n", inet_ntoa(address)); + } + broadcast_address = (net_address & net_mask) | (~net_mask); + bip_set_broadcast_addr(broadcast_address); #endif } @@ -398,7 +404,7 @@ bool bip_init( #endif /* bind the socket to the local port number and IP address */ sin.sin_family = AF_INET; -#if USE_INADDR +#if defined(USE_INADDR) && USE_INADDR /* by setting sin.sin_addr.s_addr to INADDR_ANY, I am telling the IP stack to automatically fill in the IP address of the machine the process