Subversion Repositories f9daq

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
360 f9daq 1
CFLAGS = -DMRP
2
#
3
# $Id: Makefile 1249 2014-02-22 20:21:40Z ales.bardorfer $
4
#
5
# (c) Red Pitaya  http://www.redpitaya.com
6
#
7
# Trigger
8
# Trigger project source file.
9
#
10
# make CROSS_COMPILE=arm-linux-gnueabi- clean all
11
# on PC and move to Red Pitaya:
12
# scp trig root@172.16.255.27:/tmp
13
#
14
# This project file is written for GNU/Make software. For more details please
15
# visit: http://www.gnu.org/software/make/manual/make.html
16
# GNU Compiler Collection (GCC) tools are used for the compilation and linkage.
17
# For the details about the usage and building please visit:
18
# http://gcc.gnu.org/onlinedocs/gcc/
19
#
20
 
21
# Versioning system
22
VERSION ?= 0.00-0000
23
REVISION ?= devbuild
24
 
25
# List of compiled object files (not yet linked to executable)
26
OBJS = sockserv.o fpga_osc.o calib.o daq.o
27
# List of raw source files (all object files, renamed from .o to .c)
28
SRCS = $(subst .o,.c, $(OBJS)))
29
 
30
# Executable name
31
TARGET=sockserv
32
 
33
# GCC compiling & linking flags
34
CFLAGS += -g -std=gnu99 -Wall -Werror
35
CFLAGS += -DVERSION=$(VERSION) -DREVISION=$(REVISION)
36
CFLAGS += -DDEBUG 
37
CFLAGS += -I/opt/redpitaya/include
38
CFLAGS += -L/opt/redpitaya/lib
39
#LDLIBS = -lm -lpthread -lrp
40
# Red Pitaya common SW directory
41
SHARED=/opt/redpitaya
42
 
43
# Additional libraries which needs to be dynamically linked to the executable
44
# -lm - System math library (used by cos(), sin(), sqrt(), ... functions)
45
LIBS=-lm -lpthread -lrp
46
 
47
# Main GCC executable (used for compiling and linking)
48
CC=$(CROSS_COMPILE)gcc
49
# Installation directory
50
INSTALL_DIR ?= .
51
 
52
# Makefile is composed of so called 'targets'. They give basic structure what
53
# needs to be execued during various stages of the building/removing/installing
54
# of software package.
55
# Simple Makefile targets have the following structure:
56
# <name>: <dependencies>
57
#	<command1>
58
#       <command2>
59
#       ...
60
# The target <name> is completed in the following order:
61
#   - list od <dependencies> finished
62
#   - all <commands> in the body of targets are executed succsesfully
63
 
64
# Main Makefile target 'all' - it iterates over all targets listed in $(TARGET)
65
# variable.
66
all: $(TARGET)
67
 
68
# Target with compilation rules to compile object from source files.
69
# It applies to all files ending with .o. During partial building only new object
70
# files are created for the source files (.c) which have newer timestamp then
71
# objects (.o) files.
72
%.o: %.c version.h
73
	$(CC) -c $(CFLAGS) $< -o $@
74
 
75
# Makefile target with rules how to link executable for each target from $(TARGET)
76
# list.
77
$(TARGET): $(OBJS)
78
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)
79
 
80
# Version header for traceability
81
version.h:
82
	cp $(SHARED)/include/redpitaya/version.h .
83
 
84
# Clean target - when called it cleans all object files and executables.
85
clean:
86
	rm -f *.o
87
 
88
# Install target - creates 'bin/' sub-directory in $(INSTALL_DIR) and copies all
89
# executables to that location.
90
install: clean
91
	mkdir -p $(INSTALL_DIR)/bin
92
	install $(TARGET) $(INSTALL_DIR)/bin
93
	install redpitaya_tcpsocket.service  /etc/systemd/system
94
	#enable server at  board boot
95
	systemctl enable redpitaya_tcpsocket
96
	#mkdir -p $(INSTALL_DIR)/src/utils/$(TARGET)
97
	#cp * $(INSTALL_DIR)/src/utils/$(TARGET)/
98
	#-rm `find $(INSTALL_DIR)/src/tools/$(TARGET)/ -iname .svn` -rf
99
	#install tcpsocket_manager /opt/redpitaya/www/apps
100
	cp -r tcpsocket  /opt/redpitaya/www/apps
101
	make -C /opt/redpitaya/www/apps/tcpsocket