Files

79 lines
1.9 KiB
Makefile

#
# Makefile for liblabjackusb
#
#
UNAME = $(shell uname -s)
VERSION = 2.6.0
PREFIX ?= /usr/local
DESTINATION = $(DESTDIR)$(PREFIX)/lib
HEADER = labjackusb.h
HEADER_DESTINATION = $(DESTDIR)$(PREFIX)/include
LIBFLAGS = -lusb-1.0 -lc
ADD_LDCONFIG_PATH = ./add_ldconfig_path.sh
ifeq ($(UNAME),Darwin)
#Mac OS X operating system macros
ext = dylib
TARGET = liblabjackusb-$(VERSION).$(ext)
# Build for only the host architecture
#ARCHFLAGS =
# Build for 32- and 64-bit Intel architectures
#ARCHFLAGS = -arch i386 -arch x86_64
# Build for multiple architectures
#ARCHFLAGS = -arch i386 -arch x86_64 -arch ppc
COMPILE = $(CC) -dynamiclib -o $(TARGET) -install_name $(TARGET) -current_version $(VERSION) -compatibility_version $(VERSION) labjackusb.o $(LIBFLAGS) $(ARCHFLAGS)
# By default, create link from
# liblabjackusb.dylib to liblabjackusb-$(VERSION).dylib
# because ldconfig will not be run on Mac
RUN_LDCONFIG ?= 0
LINK_SO ?= 1
else
#Linux operating system macros
ext = so
TARGET = liblabjackusb.$(ext).$(VERSION)
# Build for only the host architecture
#ARCHFLAGS =
COMPILE = $(CC) -shared -Wl,-soname,liblabjackusb.$(ext) -o $(TARGET) labjackusb.o $(LIBFLAGS)
# By default, do not create link from
# liblabjackusb.dylib to liblabjackusb-$(VERSION).dylib
# because ldconfig will be run on Linux
RUN_LDCONFIG ?= 1
LINK_SO ?= 0
endif
CFLAGS += -fPIC -g -Wall $(ARCHFLAGS)
%.o: %.c
$(CC) $(CFLAGS) -c $<
all: $(TARGET)
$(TARGET): labjackusb.o $(HEADER)
$(COMPILE)
install: $(TARGET)
test -z $(DESTINATION) || mkdir -p $(DESTINATION)
install $(TARGET) $(DESTINATION)
test -z $(HEADER_DESTINATION) || mkdir -p $(HEADER_DESTINATION)
install $(HEADER) $(HEADER_DESTINATION)
ifeq ($(RUN_LDCONFIG),1)
@$(ADD_LDCONFIG_PATH) $(DESTINATION)
ldconfig
endif
ifeq ($(LINK_SO),1)
ln -i -s $(DESTINATION)/$(TARGET) $(DESTINATION)/liblabjackusb.$(ext)
endif
clean:
rm -f $(TARGET) *.o *~