0f71b79b6f
git-svn-id: https://bucket.mit.edu/svn/nilm/acquisition/ethstream@10461 ddd99763-3ecb-0310-9145-efcb8ce7c51f
111 lines
2.3 KiB
Makefile
111 lines
2.3 KiB
Makefile
#
|
|
# Labjack/Nerdjack Tools
|
|
# Copyright (c) 2007-2009
|
|
# Jim Paris <jim@jtan.com>, Zach Clifford <zacharyc@mit.edu>
|
|
#
|
|
# This is free software; you can redistribute it and/or modify it and
|
|
# it is provided under the terms of version 2 of the GNU General Public
|
|
# License as published by the Free Software Foundation; see COPYING.
|
|
#
|
|
|
|
# For Solaris, use: gmake CC=gcc LDFLAGS="-lsocket -lnsl"
|
|
# For Windows, build with "make win"
|
|
|
|
# Build options
|
|
|
|
CFLAGS += -Wall -g #-pg
|
|
LDFLAGS += #-pg
|
|
LDLIBS += -lm
|
|
|
|
PREFIX = /usr/local
|
|
MANPATH = ${PREFIX}/man/man1/
|
|
BINPATH = ${PREFIX}/bin
|
|
|
|
#WINCC = i386-mingw32-gcc
|
|
WINCC = i586-mingw32msvc-gcc
|
|
WINCFLAGS += $(CFLAGS)
|
|
WINLDFLAGS += $(LDFLAGS) -lws2_32 -liphlpapi -s
|
|
|
|
# Targets
|
|
|
|
.PHONY: default
|
|
default: lin
|
|
|
|
.PHONY: all
|
|
all: lin win
|
|
|
|
.PHONY: lin
|
|
lin: ethstream ethstream.1 ethstream.txt
|
|
|
|
.PHONY: win
|
|
win: ethstream.exe
|
|
|
|
|
|
version.h: VERSION
|
|
echo "/* This file was automatically generated. */" >version.h
|
|
echo "#define VERSION \"`cat VERSION` (`date +%Y-%m-%d`)\"" >>version.h
|
|
|
|
# Object files for each executable
|
|
|
|
obj-common = opt.o ue9.o ue9error.o netutil.o debug.o nerdjack.o
|
|
obj-ethstream = ethstream.o $(obj-common)
|
|
|
|
ethstream: $(obj-ethstream)
|
|
$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
|
|
|
|
ethstream.exe: $(obj-ethstream:.o=.obj) compat-win32.obj
|
|
|
|
# Manpages
|
|
|
|
%.1: %
|
|
if ! help2man -N --output=$@ ./$< ; then \
|
|
echo "No manual page available." > $@ ; fi
|
|
|
|
%.txt: %.1
|
|
nroff -man $< | colcrt | sed s/$$/\\r/ > $@
|
|
|
|
# Install/uninstall targets for Linux
|
|
|
|
.PHONY: install
|
|
install: ethstream.1 ethstream
|
|
mkdir -p ${BINPATH} ${MANPATH}
|
|
install -m 0755 ethstream ${BINPATH}
|
|
install -m 0644 ethstream.1 ${MANPATH}
|
|
|
|
.PHONY: uninstall
|
|
uninstall:
|
|
rm -f ${BINPATH}/ethstream ${MANPATH}/ethstream.1
|
|
|
|
# Packaging
|
|
|
|
PACKAGE=labjack-`cat VERSION`
|
|
.PHONY: dist
|
|
dist: version.h
|
|
mkdir -p ${PACKAGE}
|
|
cp [A-Z]* *.[ch] ${PACKAGE}
|
|
tar cvzf ${PACKAGE}.tar.gz ${PACKAGE}
|
|
rm -r ${PACKAGE}
|
|
|
|
# Maintenance
|
|
|
|
.PHONY: clean distclean
|
|
clean distclean:
|
|
rm -f *.o *.obj *.exe ethstream core *.d *.dobj *.1 *.txt
|
|
|
|
# Dependency tracking:
|
|
|
|
allsources = $(wildcard *.c)
|
|
|
|
-include $(allsources:.c=.d)
|
|
%.o : %.c
|
|
$(COMPILE.c) -MP -MMD -MT '$*.o' -MF '$*.d' -o $@ $<
|
|
|
|
-include $(allsources:.c=.dobj)
|
|
%.obj : %.c
|
|
$(WINCC) $(WINCFLAGS) -MP -MMD -MT '$*.obj' -MF '$*.dobj' -c -o $@ $<
|
|
|
|
# Win32 executable
|
|
|
|
%.exe : %.obj
|
|
$(WINCC) -o $@ $^ $(WINLDFLAGS)
|