forked from tango-controls/TangoDatabase
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
172 lines (144 loc) · 5.71 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#PROTECTED REGION ID(DataBase::Makefile) ENABLED START#
#=============================================================================
#
# file : Makefile
#
# description : Makefile to generate a TANGO device server.
#
# project : TANGO
#
# $Author$
#
# $Revision$
#
# $Log: $
#
#=============================================================================
# This file is generated by POGO
# (Program Obviously used to Generate tango Object)
#=============================================================================
#
#
#=============================================================================
# MAKE_ENV is the path to find common environment to buil project
#
MAKE_ENV = /segfs/tango/cppserver/env
#=============================================================================
# PACKAGE_NAME is the name of the library/device/exe you want to build
#
PACKAGE_NAME = DataBase
MAJOR_VERS = 5
MINOR_VERS = 3
RELEASE = Release-$(MAJOR_VERS)_$(MINOR_VERS)
# #=============================================================================
# # RELEASE_TYPE
# # - DEBUG : debug symbols - no optimization
# # - OPTIMIZED : no debug symbols - optimization level set to O2
# #-----------------------------------------------------------------------------
RELEASE_TYPE = DEBUG
#=============================================================================
# OUTPUT_TYPE can be one of the following :
# - 'STATIC_LIB' for a static library (.a)
# - 'SHARED_LIB' for a dynamic library (.so)
# - 'DEVICE' for a device server (will automatically include and link
# with Tango dependencies)
# - 'SIMPLE_EXE' for an executable with no dependency (for exemple the test tool
# of a library with no Tango dependencies)
#
OUTPUT_TYPE = DEVICE
#=============================================================================
# OUTPUT_DIR is the directory which contains the build result.
# if not set, the standard location is :
# - $HOME/DeviceServers if OUTPUT_TYPE is DEVICE
# - ../bin for others
#
OUTPUT_DIR = ./bin/$(BIN_DIR)
#=============================================================================
# INC_DIR_USER is the list of all include path needed by your sources
# - for a device server, tango dependencies are automatically appended
# - '-I ../include' and '-I .' are automatically appended in all cases
#
#
MYSQL_INC_DIR=/usr/include/mysql
INC_DIR_USER= -I . -I $(MYSQL_INC_DIR)
#=============================================================================
# LIB_DIR_USER is the list of user library directories
# - for a device server, tango libraries directories are automatically appended
# - '-L ../lib' is automatically appended in all cases
#
ifdef linux
PROCESSOR = $(shell uname -p)
$(PROCESSOR)=1
ifdef x86_64
MyNbBits=64
else
MyNbBits=32
endif
endif
MYSQL_LIB_DIR=/usr/lib$(MyNbBits)/mysql
LIB_DIR_USER= -L $(MYSQL_LIB_DIR) -lmysqlclient_r
#=============================================================================
# LFLAGS_USR is the list of user link flags
# - for a device server, tango libraries directories are automatically appended
# - '-ldl -lpthread' is automatically appended in all cases
#
# !!! ATTENTION !!!
# Be aware that the order matters.
# For example if you must link with libA, and if libA depends itself on libB
# you must use '-lA -lB' in this order as link flags, otherwise you will get
# 'undefined reference' errors
#
LFLAGS_USR+= -Wl,-z,now -pie
#=============================================================================
# CXXFLAGS_USR lists the compilation flags specific for your library/device/exe
# This is the place where to put your compile-time macros using '-Dmy_macro'
#
# -DACE_HAS_EXCEPTIONS -D__ACE_INLINE__ for ACE
#
CXXFLAGS_USR+= -Wall -Wextra -D_FORTIFY_SOURCE=2 -O1 -fpie
#=============================================================================
# TANGO_REQUIRED
# - TRUE : your project depends on TANGO
# - FALSE : your project does not depend on TANGO
#-----------------------------------------------------------------------------
# - NOTE : if PROJECT_TYPE is set to DEVICE, TANGO will be auto. added
#-----------------------------------------------------------------------------
TANGO_REQUIRED = TRUE
#=============================================================================
# include Standard TANGO compilation options
#
include $(MAKE_ENV)/tango.opt
#include ../tmp/tango.opt
#=============================================================================
# POST_PROCESSING: action to be done after normal make.
# e.g.: change executable file name, .....
POST_PROCESSING = \
mv bin/$(BIN_DIR)/$(PACKAGE_NAME) bin/$(BIN_DIR)/$(PACKAGE_NAME)ds
#=============================================================================
# SVC_OBJS is the list of all objects needed to make the output
#
SVC_INCL = $(PACKAGE_NAME).h $(PACKAGE_NAME)Class.h
SVC_OBJS = \
$(OBJDIR)/$(PACKAGE_NAME).o \
$(OBJDIR)/$(PACKAGE_NAME)Class.o \
$(OBJDIR)/$(PACKAGE_NAME)StateMachine.o \
$(OBJDIR)/ClassFactory.o \
$(OBJDIR)/main.o \
$(ADDITIONAL_OBJS)
#------------ Object files for additional files ------------
ADDITIONAL_OBJS = \
$(OBJDIR)/DataBaseUtils.o \
$(OBJDIR)/update_starter.o
#=============================================================================
# include common targets
#
include $(MAKE_ENV)/common_target.opt
#=============================================================================
#
SVN_TCS = https://svn.code.sf.net/p/tango-cs/code
SVN_PATH = $(SVN_TCS)/classes/cpp/dbase
tag:
@echo "Tagging $(PACKAGE_NAME) for $(RELEASE)"
svn copy $(SVN_PATH)/trunk \
$(SVN_PATH)/tags/$(PACKAGE_NAME)-$(RELEASE)
#PROTECTED REGION END#