75 lines
1.6 KiB
Makefile
75 lines
1.6 KiB
Makefile
# PicoTCP Example Makefile
|
|
|
|
CC = gcc
|
|
WOLFSSL_INSTALL_DIR = /usr/local
|
|
PICOTCP_PATH = ../../picotcp
|
|
CFLAGS = -Wall -I$(WOLFSSL_INSTALL_DIR)/include -I$(PICOTCP_PATH)/build/include
|
|
LIBS = -L$(WOLFSSL_INSTALL_DIR)/lib -lm -pthread
|
|
|
|
# option variables
|
|
DYN_LIB = -lwolfssl
|
|
STATIC_LIB = $(PICOTCP_PATH)/build/lib/libpicotcp.a
|
|
DEBUG_FLAGS = -g -DDEBUG
|
|
DEBUG_INC_PATHS = -MD
|
|
SILENCE_FLAGS = -Wno-address-of-packed-member -Wno-discarded-qualifiers
|
|
OPTIMIZE = -Os
|
|
|
|
# Options
|
|
#CFLAGS+=$(DEBUG_FLAGS)
|
|
CFLAGS+=$(OPTIMIZE)
|
|
CFLAGS+=$(SILENCE_FLAGS)
|
|
LIBS+=$(STATIC_LIB) $(DYN_LIB)
|
|
|
|
# build targets
|
|
SRC=$(wildcard *.c)
|
|
TARGETS=$(patsubst %.c, %, $(SRC))
|
|
|
|
# OS / CPU Detection
|
|
OS_DET=UNKNOWN
|
|
CPU_DET=UNKNOWN
|
|
ifeq ($(OS),Windows_NT)
|
|
OS_DET=WIN32
|
|
ifeq ($(PROCESSOR_ARCHITEW6432),AMD64)
|
|
CPU_DET=AMD64
|
|
else
|
|
ifeq ($(PROCESSOR_ARCHITECTURE),AMD64)
|
|
CPU_DET=AMD64
|
|
endif
|
|
ifeq ($(PROCESSOR_ARCHITECTURE),x86)
|
|
CPU_DET=IA32
|
|
endif
|
|
endif
|
|
else
|
|
UNAME_S := $(shell uname -s)
|
|
ifeq ($(UNAME_S),Linux)
|
|
OS_DET=LINUX
|
|
endif
|
|
ifeq ($(UNAME_S),Darwin)
|
|
OS_DET=OSX
|
|
endif
|
|
UNAME_P := $(shell uname -p)
|
|
ifeq ($(UNAME_P),x86_64)
|
|
CPU_DET=AMD64
|
|
endif
|
|
ifneq ($(filter %86,$(UNAME_P)),)
|
|
CPU_DET=IA32
|
|
endif
|
|
ifneq ($(filter arm%,$(UNAME_P)),)
|
|
CPU_DET=ARM
|
|
endif
|
|
endif
|
|
|
|
.PHONY: clean all
|
|
|
|
all: $(TARGETS)
|
|
|
|
debug: CFLAGS+=$(DEBUG_FLAGS)
|
|
debug: all
|
|
|
|
# build template
|
|
%: %.c
|
|
$(CC) -o $@ $< $(CFLAGS) $(LIBS)
|
|
|
|
clean:
|
|
rm -f $(TARGETS)
|