File: Makefile

package info (click to toggle)
firebird4.0 4.0.6.3221.ds6-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 41,964 kB
  • sloc: ansic: 393,248; cpp: 356,542; sql: 15,263; yacc: 8,713; fortran: 5,645; sh: 5,184; pascal: 3,328; makefile: 1,342; asm: 271; perl: 194; xml: 55; csh: 15; awk: 1
file content (96 lines) | stat: -rw-r--r-- 2,499 bytes parent folder | download | duplicates (2)
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
#  The contents of this file are subject to the Initial
#  Developer's Public License Version 1.0 (the "License");
#  you may not use this file except in compliance with the
#  License. You may obtain a copy of the License at
#  https://www.firebirdsql.org/en/initial-developer-s-public-license-version-1-0/
#
#  Software distributed under the License is distributed AS IS,
#  WITHOUT WARRANTY OF ANY KIND, either express or implied.
#  See the License for the specific language governing rights
#  and limitations under the License.
#
#  The Original Code was created by Alexander Peshkoff
#  for the Firebird Open Source RDBMS project.
#
#  Copyright (c) 2020 Alexander Peshkoff <peshkoff@mail.ru>
#  and all contributors signed below.
#
#  All Rights Reserved.
#  Contributor(s): ______________________________________.

ifndef ROOT
  ROOT=../..
endif
#ROOT=$(shell cd ../..; pwd)

PLUGINS=$(ROOT)/plugins
BIN=$(ROOT)/bin
LIB=$(ROOT)/lib

LIB_PREFIX=lib
SHRLIB_EXT=so

ifndef INTERMED
  INTERMED=.
endif

ifdef OUT
  OUT_BIN=$(OUT)/bin
  OUT_PLUG=$(OUT)/plugins
else
  OUT_BIN=.
  OUT_PLUG=.
endif

TOMCRYPT_COMPILE=-DLTC_PTHREAD -DUSE_LTM -DLTM_DESC
OwnInclude=$(shell [ -d tomcrypt.include ] && echo Yes || echo No)
ifeq ($(OwnInclude), Yes)
TOMCRYPT_COMPILE += -Itomcrypt.include
TOMCRYPT_LINK=-L$(LIB)/.tm
endif

SIMPLE_KEY_AUTH_NAME=$(LIB_PREFIX)fbSampleExtAuth.$(SHRLIB_EXT)
BLD_SIMPLE_KEY_AUTH=$(OUT_PLUG)/$(SIMPLE_KEY_AUTH_NAME)
SIMPLE_KEY_AUTH=$(PLUGINS)/$(SIMPLE_KEY_AUTH_NAME)

KEYGEN_NAME=fbSampleExtAuthKeygen
BLD_KEYGEN=$(OUT_BIN)/$(KEYGEN_NAME)
KEYGEN=$(BIN)/$(KEYGEN_NAME)

KEYGEN_objects=$(INTERMED)/keygen.o
TCWRAP_objects=$(INTERMED)/TcWrapper.o
KEY_AUTH_objects=$(INTERMED)/ExtAuth.o

CXXFLAGS+=-std=c++11 -pthread -I$(ROOT)/include -fPIC $(TOMCRYPT_COMPILE)
LDFLAGS+=-pthread -L$(LIB) -Wl,-rpath,'$$ORIGIN/../lib' $(TOMCRYPT_LINK)

LINK_LIBS=-lfbclient -ltomcrypt -ltommath

$(INTERMED)/%.o: ./%.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(firstword $<) -o $@

.PHONY:		all keygen plugin install

all:		keygen plugin

keygen:		$(BLD_KEYGEN)

$(BLD_KEYGEN):	$(KEYGEN_objects) $(TCWRAP_objects)
	$(CXX) $(LDFLAGS) $^ -o $@ $(LINK_LIBS)

plugin:		$(BLD_SIMPLE_KEY_AUTH)

$(BLD_SIMPLE_KEY_AUTH):	$(KEY_AUTH_objects) $(TCWRAP_objects)
	$(CXX) -shared $(LDFLAGS) $^ -o $@ $(LINK_LIBS)

clean:
	rm -f $(INTERMED)/*.o* $(BLD_KEYGEN) $(BLD_SIMPLE_KEY_AUTH)

install:	$(SIMPLE_KEY_AUTH) $(KEYGEN)

$(SIMPLE_KEY_AUTH): $(BLD_SIMPLE_KEY_AUTH)
	cp $^ $@

$(KEYGEN): $(BLD_KEYGEN)
	cp $^ $@