为使用NPM的应用程序创建新的FreeBSD端口,而不是Make

Dun*_*yne 3 porting freebsd

我正在为不使用Make 的应用程序(赛普拉斯)创建一个FreeBSD端口; 相反,它使用NPM:

npm run binary-build-linux
cd cli
npm run build
Run Code Online (Sandbox Code Playgroud)

我可以看到两个选项:

  1. 将Makefile作为补丁添加到工作目录.
  2. 说服上游维护者获取一个仅由该端口使用的Makefile.

我想知道是否有我错过的第三个选项:修改我的端口的Makefile以运行一系列shell命令来代替Makefile?读过搬运工的手册后,我看不出有什么方法可以做到这一点.

nba*_*ari 5

你不一定需要使用make例如,这是端口使用do-build目标:(检查其他构建目标,目标OPT-上和目标OPT-关:

do-build:
    @cd ${WRKSRC}/src/github.com/${GH_ACCOUNT}/${GH_PROJECT}; \
    ${SETENV} ${MAKE_ENV} ${BUILD_ENV} GOPATH=${WRKSRC} go build -ldflags \
    "-s -w -X main.version=${PORTVERSION}" -o immortal cmd/immortal/main.go;
    @cd ${WRKSRC}/src/github.com/${GH_ACCOUNT}/${GH_PROJECT}; \
    ${SETENV} ${MAKE_ENV} ${BUILD_ENV} GOPATH=${WRKSRC} go build -ldflags \
    "-s -w -X main.version=${PORTVERSION}" -o immortalctl cmd/immortalctl/main.go;
    @cd ${WRKSRC}/src/github.com/${GH_ACCOUNT}/${GH_PROJECT}; \
    ${SETENV} ${MAKE_ENV} ${BUILD_ENV} GOPATH=${WRKSRC} go build -ldflags \
    "-s -w -X main.version=${PORTVERSION}" -o immortaldir cmd/immortaldir/main.go;
Run Code Online (Sandbox Code Playgroud)

这个其他端口使用node:

do-build:
    @(cd ${WRKSRC}/public ; node ./bundler.js )
    @(cd ${WRKSRC} ; go-bindata -o util/bindata.go -pkg util config.json db/migrations/ public/css public/html public/html/projects public/html/projects/repositories public/html/projects/inventory public/html/projects/templates public/html/projects/users public/html/projects/environment public/html/projects/keys public/html/users public/html/auth public/img public/js public/js/services public/js/controllers public/js/controllers/projects public/js/routes public/js/factories public/node_modules public/node_modules/lodash public/node_modules/lodash/fp public/node_modules/async public/node_modules/async/dist public/node_modules/async/internal public/vendor public/vendor/fontawesome public/vendor/fontawesome/less public/vendor/fontawesome/fonts public/vendor/sweetalert public/vendor/moment public/vendor/bootstrap public/vendor/bootstrap/fonts public/vendor/bootstrap/dist public/vendor/bootstrap/dist/css public/vendor/bootstrap/dist/fonts public/vendor/bootstrap/dist/js public/vendor/bootstrap/less public/vendor/bootstrap/less/mixins public/vendor/angular-loading-bar )
    @(cd ${WRKSRC}/cli ; ${SETENV} ${MAKE_ENV} GOPATH=${WRKSRC} go build -o semaphore ./... )
Run Code Online (Sandbox Code Playgroud)

两个端口都使用BUILD_DEPENDS(检查移植手册中依赖关系)

BUILD_DEPENDS=  ${LOCALBASE}/bin/go:lang/go \
        ${LOCALBASE}/bin/go-bindata:devel/go-bindata \
        npm>=0:www/npm
Run Code Online (Sandbox Code Playgroud)