Skip to content

Commit 96aa778

Browse files
committed
Rework package/Makefile
1 parent 343ef5f commit 96aa778

File tree

1 file changed

+65
-28
lines changed

1 file changed

+65
-28
lines changed

package/Makefile

Lines changed: 65 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,38 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515

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]*//')
1943
VER=$(MAJ).$(MIN).$(PAT)
2044

45+
# This must be relative to this directory
46+
TMPDIR=tmpdir
47+
2148
# The staging-oracledb-X.Y.Z.tgz package will try to download binaries from
2249
# https://$NODE_ORACLEDB_PACKAGE_HOSTNAME/$NODE_ORACLEDB_PACKAGE_URL_PATH/vX.Y.Z/
2350
ifndef NODE_ORACLEDB_PACKAGE_HOSTNAME
@@ -27,28 +54,38 @@ ifndef NODE_ORACLEDB_PACKAGE_URL_PATH
2754
NODE_ORACLEDB_PACKAGE_URL_PATH=/your-url-path-to-directory/
2855
endif
2956

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

Comments
 (0)