115 lines
3.6 KiB
Makefile
115 lines
3.6 KiB
Makefile
# makefile для сборки примера с помощью компиляторов mingw (под Windows)
|
||
# или GCC (под Linux). Необходимо определить 3 переменные:
|
||
#
|
||
# CC - имя команды для вызова компилятора
|
||
# X502API_LIBRARIES_DIR - путь к файлм .a или .so библиотек l502api, e502api, x502api (если не стандартный)
|
||
# X502API_INCLUDE_DIR - путь к заголовочным файлам l502api.h, e502api.h, x502api.h
|
||
#
|
||
# Ниже приведено несколько примеров в закоментированном виде
|
||
|
||
#--- Linux с заголовками и библиотекой в стандартных директориях: компилятор GCC
|
||
#CC = gcc
|
||
|
||
#--- Вариант запуска из MSYS со стандартным 32-битным mingw
|
||
#CC = gcc
|
||
#X502API_LIBRARIES_DIR = "/c/Program Files/L-Card/lpcie/lib/mingw"
|
||
#X502API_INCLUDE_DIR = "/c/Program Files/L-Card/lpcie/include"
|
||
|
||
|
||
#--- 64-битный вариант mingw w64, идущий вместе с cygwin --------
|
||
#CC = x86_64-w64-mingw32-gcc
|
||
#X502API_LIBRARIES_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/lib/mingw64"
|
||
#X502API_INCLUDE_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/include"
|
||
|
||
#--- 32-битный вариант mingw w64, идущий вместе с cygwin --------
|
||
#CC = i686-w64-mingw32-gcc
|
||
#X502API_LIBRARIES_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/lib/mingw"
|
||
#X502API_INCLUDE_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/include"
|
||
|
||
#--- 32-битный вариант mingw, идущий вместе с cygwin --------
|
||
#CC = i686-pc-mingw32-gcc
|
||
#X502API_LIBRARIES_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/lib/mingw"
|
||
#X502API_INCLUDE_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/include"
|
||
|
||
|
||
CC ?= gcc
|
||
CFLAGS ?= -O2 -g
|
||
BUILD_DIR ?= build
|
||
|
||
X502API_ROOT := lib/x502api-1.1.34
|
||
X502_SRC_DIR := $(X502API_ROOT)/src
|
||
L502_SRC_DIR := $(X502API_ROOT)/devs/l502
|
||
E502_SRC_DIR := $(X502API_ROOT)/devs/e502
|
||
OSSPEC_DIR := $(X502API_ROOT)/lib/osspec
|
||
LTIMER_DIR := $(X502API_ROOT)/lib/ltimer
|
||
LCSPEC_DIR := $(X502API_ROOT)/lib/lcspec
|
||
CRC_DIR := $(X502API_ROOT)/lib/crc
|
||
LCSPEC_COMPILER ?= gcc
|
||
LTIMER_PORT := linux
|
||
|
||
INCLUDES := \
|
||
-I$(X502_SRC_DIR) \
|
||
-I$(L502_SRC_DIR) \
|
||
-I$(E502_SRC_DIR) \
|
||
-I$(OSSPEC_DIR) \
|
||
-I$(LTIMER_DIR) \
|
||
-I$(LTIMER_DIR)/ports/$(LTIMER_PORT) \
|
||
-I$(LCSPEC_DIR) \
|
||
-I$(LCSPEC_DIR)/$(LCSPEC_COMPILER) \
|
||
-I$(CRC_DIR) \
|
||
-Ilib
|
||
|
||
DEFINES := -DOSSPEC_USE_MUTEX -DOSSPEC_USE_EVENTS -DOSSPEC_USE_THREADS \
|
||
-DX502API_VER_MAJOR=1 -DX502API_VER_MINOR=1 -DX502API_VER_PATCH=34 \
|
||
-DENABLE_USB
|
||
|
||
X502_SRCS := \
|
||
x502api.c \
|
||
x502api_streams.c \
|
||
x502api_async.c \
|
||
x502api_bf.c \
|
||
x502api_config.c \
|
||
x502api_eeprom.c \
|
||
x502api_errs.c
|
||
|
||
L502_SRCS := \
|
||
l502api.c \
|
||
l502api_compat.c \
|
||
l502api_eeprom.c \
|
||
l502api_bf.c \
|
||
linux/l502_spec.c
|
||
|
||
E502_SRCS := \
|
||
e502api.c \
|
||
e502api_usb.c \
|
||
e502api_tcp.c \
|
||
e502api_dnssd.c \
|
||
e502api_eth_config.c
|
||
|
||
OSSPEC_SRCS := $(OSSPEC_DIR)/osspec.c
|
||
LTIMER_SRCS := $(LTIMER_DIR)/ports/$(LTIMER_PORT)/lclock.c
|
||
CRC_SRCS := $(CRC_DIR)/fast_crc.c
|
||
|
||
SRCS := \
|
||
main.c \
|
||
$(addprefix $(X502_SRC_DIR)/,$(X502_SRCS)) \
|
||
$(addprefix $(L502_SRC_DIR)/,$(L502_SRCS)) \
|
||
$(addprefix $(E502_SRC_DIR)/,$(E502_SRCS)) \
|
||
$(OSSPEC_SRCS) \
|
||
$(LTIMER_SRCS) \
|
||
$(CRC_SRCS)
|
||
|
||
OBJS := $(addprefix $(BUILD_DIR)/,$(SRCS:.c=.o))
|
||
|
||
$(BUILD_DIR)/%.o: %.c
|
||
@mkdir -p $(dir $@)
|
||
$(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -c $< -o $@
|
||
|
||
all: BF_companion
|
||
|
||
BF_companion: $(OBJS)
|
||
$(CC) $(CFLAGS) $^ -lpthread -lusb-1.0 -lm -o $@
|
||
|
||
clean:
|
||
rm -rf $(BUILD_DIR) BF_companion
|