13
13
# See the License for the specific language governing permissions and
14
14
# limitations under the License.
15
15
16
- MAJ =$(shell grep '\#define \+NJS_NODE_ORACLEDB_MAJOR' ../src/njsOracle.h | sed -e 's/[^0-9]* //')
17
- MIN =$(shell grep '\#define \+NJS_NODE_ORACLEDB_MINOR' ../src/njsOracle.h | sed -e 's/[^0-9]* //')
18
- PAT =$(shell grep '\#define \+NJS_NODE_ORACLEDB_PATCH' ../src/njsOracle.h | sed -e 's/[^0-9]* //')
16
+ CP =cp
17
+ MV =mv
18
+ CD =cd
19
+ MKDIR =mkdir
20
+ ECHO =echo
21
+ DATE =date -u
22
+ SED =sed
23
+ GREP =grep
24
+ RMDIR =rm -rf
25
+ RMALL =rm -f
26
+ TAR =tar
27
+ GIT =git
28
+ NODE =node
29
+ NPM =npm
30
+
31
+ GITSHA =$(shell $(GIT ) rev-parse --short HEAD)
32
+ BUILDDATE =$(shell $(DATE ) )
33
+ SUBMOD ="$(shell $(CD ) .. && $(GIT ) submodule) " # Old git needs to run this in toplevel
34
+
35
+ # createpackage.js assumes these paths
36
+ BINARY_PATH_LOCAL =../build/Release/oracledb.node
37
+ LICENSE_PATH_LOCAL =../LICENSE.md
38
+
39
+ # Find the node-oracledb version number
40
+ MAJ =$(shell $(GREP ) '\#define \+NJS_NODE_ORACLEDB_MAJOR' ../src/njsOracle.h | $(SED ) -e 's/[^0-9]* //')
41
+ MIN =$(shell $(GREP ) '\#define \+NJS_NODE_ORACLEDB_MINOR' ../src/njsOracle.h | $(SED ) -e 's/[^0-9]* //')
42
+ PAT =$(shell $(GREP ) '\#define \+NJS_NODE_ORACLEDB_PATCH' ../src/njsOracle.h | $(SED ) -e 's/[^0-9]* //')
19
43
VER =$(MAJ ) .$(MIN ) .$(PAT )
20
44
45
+ # This must be relative to this directory
46
+ TMPDIR =tmpdir
47
+
21
48
# The staging-oracledb-X.Y.Z.tgz package will try to download binaries from
22
49
# https://$NODE_ORACLEDB_PACKAGE_HOSTNAME/$NODE_ORACLEDB_PACKAGE_URL_PATH/vX.Y.Z/
23
50
ifndef NODE_ORACLEDB_PACKAGE_HOSTNAME
@@ -27,28 +54,38 @@ ifndef NODE_ORACLEDB_PACKAGE_URL_PATH
27
54
NODE_ORACLEDB_PACKAGE_URL_PATH=/your-url-path-to-directory/
28
55
endif
29
56
30
- # Create a package containing the binary and license files.
31
- binarypackage :
32
- (cd .. && rm -f package-lock.json && npm install)
33
- node createpackage.js
34
- @echo " ==> Created package for Node.js ` node --version` "
35
-
36
- npmpackage : oracledb-$(VER ) .tgz
37
-
38
- # Create the npm package with a package.json that invokes oracledbinstall.js at install time
39
- oracledb-$(VER ) .tgz :
40
- rm -rf ./bundle/
41
- mkdir -m 755 bundle
42
- cp ./package.json ../index.js ../README.md ../LICENSE.md ../CHANGELOG.md bundle/
43
- mkdir -m 755 bundle/lib
44
- cp ../lib/* .js bundle/lib/
45
- mkdir -m 755 bundle/package
46
- cp ./oracledbinstall.js ./extractpackage.js ./util.js bundle/package/
47
- (cd bundle && tar -czvf ../oracledb-$( VER) .tgz ./* )
48
- sed -e " s#'github.com'#'$( NODE_ORACLEDB_PACKAGE_HOSTNAME) '#" bundle/package/oracledbinstall.js > bundle/package/oracledbinstall.js.tmp && mv bundle/package/oracledbinstall.js.tmp bundle/package/oracledbinstall.js
49
- sed -e " s#'/oracle/node-oracledb/releases/download/'#'$( NODE_ORACLEDB_PACKAGE_URL_PATH) '#" bundle/package/oracledbinstall.js > bundle/package/oracledbinstall.js.tmp && mv bundle/package/oracledbinstall.js.tmp bundle/package/oracledbinstall.js
50
- (cd bundle && tar -czvf ../staging-oracledb-$( VER) .tgz ./* )
51
- rm -rf ./bundle/
52
-
53
- clean :
54
- rm -rf oracledb-$(VER ) .tgz staging-oracledb-$(VER ) .tgz SHASUMS256.txt oracledb-v* -node-* .gz ../package-lock.json ./bundle/
57
+ # Create the generic 'npm install' package with a package.json that
58
+ # invokes oracledbinstall.js at install time
59
+ npmpackage :
60
+ @$(RMDIR ) $(TMPDIR )
61
+ $(MKDIR ) -m 755 $(TMPDIR ) && $(CP ) ./package.json ../index.js ../README.md $(LICENSE_PATH_LOCAL ) ../CHANGELOG.md $(TMPDIR ) && (echo " NJS SHA: $( GITSHA) " && echo " Package date: $( BUILDDATE) " ) >> $(TMPDIR ) /LICENSE.md
62
+ $(MKDIR ) -m 755 $(TMPDIR ) /lib && $(CP ) ../lib/* .js $(TMPDIR ) /lib
63
+ $(MKDIR ) -m 755 $(TMPDIR ) /package && $(CP ) oracledbinstall.js extractpackage.js util.js $(TMPDIR ) /package
64
+ ($( CD) $( TMPDIR) && $( TAR) -czf ../oracledb-$( VER) .tgz ./* )
65
+ @$(ECHO ) " ==> Created generic npm production package for node-oracledb $( VER) "
66
+
67
+ $(SED) -e "s# 'github.com'#'$(NODE_ORACLEDB_PACKAGE_HOSTNAME)'#" $(TMPDIR)/package/oracledbinstall.js > $(TMPDIR)/package/oracledbinstall.js.tmp && $(MV) $(TMPDIR)/package/oracledbinstall.js.tmp $(TMPDIR)/package/oracledbinstall.js
68
+ $(SED) -e "s# '/oracle/node-oracledb/releases/download/'#'$(NODE_ORACLEDB_PACKAGE_URL_PATH)'#" $(TMPDIR)/package/oracledbinstall.js > $(TMPDIR)/package/oracledbinstall.js.tmp && $(MV) $(TMPDIR)/package/oracledbinstall.js.tmp $(TMPDIR)/package/oracledbinstall.js
69
+ ($(CD) $(TMPDIR) && $(TAR) -czf ../staging-oracledb-$(VER).tgz ./*)
70
+ @$(ECHO) "==> Created generic npm staging package for node-oracledb $(VER)"
71
+ @$(RMDIR) $(TMPDIR)
72
+
73
+ # Create a package containing (i) the license file and (ii) the
74
+ # node-oracledb binary for the current environment
75
+ binarypackage : $(BINARY_PATH_LOCAL ) $(LICENSE_PATH_LOCAL )
76
+ $(CP ) $(LICENSE_PATH_LOCAL ) $(LICENSE_PATH_LOCAL ) .bk && (echo " NJS SHA: $( GITSHA) " && echo $( SUBMOD) && echo " Package date: $( BUILDDATE) " ) >> $(LICENSE_PATH_LOCAL )
77
+ $(NODE ) createpackage.js
78
+ $(MV ) $(LICENSE_PATH_LOCAL ) .bk $(LICENSE_PATH_LOCAL )
79
+ @$(ECHO ) " ==> Created binary package for Node.js ` $( NODE) --version` "
80
+
81
+ # Build the node-oracledb binary
82
+ $(BINARY_PATH_LOCAL ) : cleanbinary
83
+ ($( CD) .. && $( NPM) install)
84
+
85
+ clean : cleanbinary
86
+ $(RMDIR ) $(TMPDIR )
87
+ $(RMALL ) ../package-lock.json
88
+ $(RMALL ) oracledb-$(VER ) .tgz staging-oracledb-$(VER ) .tgz SHASUMS256.txt oracledb-v* -node-* .gz
89
+
90
+ cleanbinary :
91
+ $(RMALL ) $(BINARY_PATH_LOCAL )
0 commit comments