Files
E502_ADC_BF_PC_companion/makefile

115 lines
3.6 KiB
Makefile
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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