Makefile
author Mario de Sousa <msousa@fe.up.pt>
Tue, 10 Dec 2019 15:51:32 +0000
changeset 6 fe4088d5573a
parent 0 ae252e0fd9b8
child 2 19bf8e678c42
permissions -rw-r--r--
change hton() and ntoh() so we don't use (u8 *) to (u16 *) casts. Some compilers incorrectly change the pointer to force alignment with even addresses.

default: all

all:  libmb.a libmb.so

OBJ_FILES = mb_ascii.o mb_rtu.o mb_tcp.o mb_master.o mb_slave.o mb_slave_and_master.o sin_util.o

libmb.a:  $(OBJ_FILES)
	ar cr libmb.a $(OBJ_FILES)

libmb.so: $(OBJ_FILES)
	gcc -shared -fPIC -o libmb.so $(OBJ_FILES)

clean:
	-rm -rf *.o libmb.a libmb.so



# use gcc
CC = gcc

#get warnings, debugging information and optimization
CFLAGS  = -Wall -Wpointer-arith -Wstrict-prototypes -Wwrite-strings
# CFLAGS += -Werror
CFLAGS += -ggdb -O3 -funroll-loops
# Note: if the optimizer crashes, we'll leave out the -O3 for those files

# Required for compilation with beremiz, and to create shared object library
CFLAGS += -fPIC



#how to make things from other directories if they are missing
../% /%:
	$(MAKE) -C $(@D) $(@F)

Makefile.depend depend:
#	gcc -MM -MG -I$(LLIB) *.c \
	gcc -MM -MG *.c \
		| perl -pe 's/:/ Makefile.depend:/' \
		> Makefile.depend

include Makefile.depend