# Makefile for AGrandTech EMS project ProjectL = omc ProjectU = OMC PROJECT = $(ProjectL) VERSION = 2.2504.4 RelDate = `date +%Y%m%d` Release = $(RelDate) RelVer = $(VERSION)-$(RelDate) PLATFORM = amd64 ARMPLATFORM = aarch64 GitLocalRoot = $(HOME)/omc.git EmsBuildRoot=$(GitLocalRoot)/build.ems BuildDir = $(EmsBuildRoot)/build CustomizedDir = $(EmsBuildRoot)/customized BuildOMCDir = $(BuildDir)/usr/local/omc BuildOMCBinDir = $(BuildOMCDir)/bin BuildOMCEtcDir = $(BuildOMCDir)/etc BuildLibDir = $(BuildDir)/lib BuildLibSystemDir = $(BuildLibDir)/systemd/system DebBuildDir = $(EmsBuildRoot)/debbuild DebBuildOMCDir = $(EmsBuildRoot)/debbuild/usr/local/omc DebFEBuildDir = $(EmsBuildRoot)/debbuild/usr/local/omc/htdocs DebBuild2204Dir = $(EmsBuildRoot)/debbuild/22.04 DebBuild2204OMCDir = $(EmsBuildRoot)/debbuild/22.04/usr/local/omc DebFEBuild2204Dir = $(EmsBuildRoot)/debbuild/22.04/usr/local/omc/htdocs RpmBuildDir = $(EmsBuildRoot)/rpmbuild RpmFEBuildDir = $(RpmBuildDir)/BUILD/usr/local/omc/htdocs OmcInstallDir = /usr/local/omc ReleaseDir = $(EmsBuildRoot)/release EmsBEDir = $(GitLocalRoot)/be.ems ConfigEtcDir = $(EmsBEDir)/config/etc ConfigSystemdDir = $(EmsBEDir)/config/systemd EmsFEDir = $(GitLocalRoot)/fe.ems EmsFEVue3Dir = $(GitLocalRoot)/fe.ems.vue3/dist LibDir = $(EmsBEDir)/lib RestagentBin = restagent SshSvcBin = sshsvc RestagentDir = $(EmsBEDir)/$(RestagentBin) SshSvcDir = $(EmsBEDir)/$(SshSvcBin) DBSQLSrcDir = $(EmsBEDir)/database MiscDir = $(EmsBEDir)/misc FrontBuildDir = $(BuildOMCDir)/htdocs FrontSrcDir = $(EmsBEDir)/front ReleaseDebs = $(ReleaseDir)/debs/$(PLATFORM) BinWriterDir = $(HOME)/bin ifeq ($(shell grep VERSION_ID /etc/os-release), VERSION_ID="22.04") DebBuildDir := $(DebBuild2204Dir) DebBuildOMCDir := $(DebBuild2204OMCDir) DebFEBuildDir := $(DebFEBuild2204Dir) #DebPkgFile := $(PROJECT)-$(VERSION)-22.04-$(Release).$(PLATFORM).deb DebPkgFile := $(PROJECT)-r$(VERSION)-$(Release)-ub22.deb DebPkgFileBA := $(PROJECT)-r$(VERSION)-$(Release)-ub22-ba.deb else ifeq ($(shell grep VERSION_ID /etc/os-release), VERSION_ID="18.04") DebPkgFile := $(PROJECT)-r$(VERSION)-$(Release)-ub18.deb DebPkgFileBA := $(PROJECT)-r$(VERSION)-$(Release)-ub18-ba.deb endif .PHONY: all # $(RestagentBin) $(SshSvcBin) all: $(RestagentBin) $(SshSvcBin) cd $(RestagentDir) && \ go build -o $(RestagentBin) -v -ldflags "-s -w -X '$(LibDir)/conifg.Version=$(RelVer)' \ -X '$(LibDir)/conifg.BuildTime=`date`' \ -X '$(LibDir)/conifg.GoVer=`go version`'" cd $(SshSvcDir) && \ go build -o $(SshSvcBin) -v -ldflags "-s -w -X '$(LibDir)/conifg.Version=$(RelVer)' \ -X '$(LibDir)/conifg.BuildTime=`date`' \ -X '$(LibDir)/conifg.GoVer=`go version`'" clean: rm $(RestagentDir)/$(RestagentBin) $(SshSvcDir)/$(SshSvcBin) dist: tar -zvcPf $(ReleaseDir)/$(PROJECT)-src-$(VERSION).tar.gz \ ../lib \ ../restagent \ ../initems \ ../database \ ../docs \ ../misc \ ../config \ --exclude=../restagent/restagent \ --exclude=../initems/initems pre_build: $(BINNAME) # clear build cache rm -rf $(FrontBuildDir)/front/* rm -rf $(DebFEBuildDir)/front/* rm -rf $(DebBuildDir)/usr/local/omc/etc/db/* cp -rf $(RestagentDir)/$(RestagentBin) $(BuildOMCBinDir) cp -rf $(SshSvcDir)/$(SshSvcBin) $(BuildOMCBinDir) cp -rf $(MiscDir)/* $(BuildOMCBinDir) cp -rf $(ConfigEtcDir)/* $(BuildOMCEtcDir) rm -rf $(BuildOMCEtcDir)/db/* cp -rf $(DBSQLSrcDir)/* $(BuildOMCEtcDir)/db/ cp -rf $(ConfigSystemdDir)/* $(BuildLibSystemDir) cp -rf $(EmsFEVue3Dir)/* $(FrontBuildDir)/front >/dev/null chmod 755 $(BuildOMCBinDir)/* chmod 755 $(DebBuildDir)/DEBIAN/preinst chmod 755 $(DebBuildDir)/DEBIAN/postinst chmod 755 $(DebBuildDir)/DEBIAN/postrm cp -rf $(BuildDir)/* $(DebBuildDir)/ replace_chinese: @find $(DebBuildOMCDir)/etc/db -type f -name '*.sql' -exec sed -i '' 's/[一-龥]//g' {} + @echo "Replace all chinese charecter." deb: pre_build cp -rf $(CustomizedDir)/agt.d $(DebBuildOMCDir)/static cp -rf $(CustomizedDir)/omc.d $(DebBuildOMCDir)/static #cp -rf $(BuildDir)/nginx/* $(DebBuildDir)/etc/nginx/conf.d #cp -rf $(BuildDir)/systemd/*.service $(DebBuildDir)/lib/systemd/system/ chmod +x $(DebBuildDir)/usr/local/omc/bin/* #sed -i.bak 's/YYYYMMDD/$(shell date +"%Y%m%d")/g' $(DebBuildDir)/DEBIAN/control sed -i 's/YYYYMMDD/$(shell date +"%Y%m%d")/g' $(DebBuildDir)/DEBIAN/control perl -0777 -i -pe 's/ne:\n user: root/ne:\n user: omcuser/g' $(DebBuildDir)/usr/local/omc/etc/default/restconf.yaml dpkg -b $(DebBuildDir) $(ReleaseDebs)/$(DebPkgFile) badeb: pre_build replace_chinese cp -rf $(CustomizedDir)/ba.d $(DebBuildOMCDir)/static #cp -rf $(BuildDir)/nginx/* $(DebBuildDir)/etc/nginx/conf.d #cp -rf $(BuildDir)/systemd/*.service $(DebBuildDir)/lib/systemd/system/ chmod +x $(DebBuildDir)/usr/local/omc/bin/* #sed -i.bak 's/YYYYMMDD/$(shell date +"%Y%m%d")/g' $(DebBuildDir)/DEBIAN/control sed -i 's/YYYYMMDD/$(shell date +"%Y%m%d")/g' $(DebBuildDir)/DEBIAN/control perl -0777 -i -pe 's/ne:\n user: root/ne:\n user: omcuser/g' $(DebBuildDir)/usr/local/omc/etc/default/restconf.yaml dpkg -b $(DebBuildDir) $(ReleaseDebs)/$(DebPkgFileBA) rpm: $(BINNAME) # clear build cache rm -rf $(FrontBuildDir)/front/* rm -rf $(RpmFEBuildDir)/front/* rm -rf $(RpmBuildDir)/BUILD/usr/local/omc/etc/db/* cp -rf $(RestagentDir)/$(RestagentBin) $(BuildOMCBinDir) cp -rf $(SshSvcDir)/$(SshSvcBin) $(BuildOMCBinDir) cp -rf $(MiscDir)/* $(BuildOMCBinDir) # rm -rf $(BinDir2)/ne-hosts cp -rf $(ConfigEtcDir)/* $(BuildOMCEtcDir) rm -rf $(BuildOMCEtcDir)/db/* cp -rf $(DBSQLSrcDir)/* $(BuildOMCEtcDir)/db/ cp -rf $(ConfigSystemdDir)/* $(BuildLibSystemDir) #unzip $(FrontSrcDir)/front.zip -d $(FrontBuildDir) >/dev/null mkdir -p $(FrontBuildDir)/front cp -rf $(EmsFEVue3Dir)/* $(FrontBuildDir)/front >/dev/null chmod 755 $(BuildOMCBinDir)/* # chmod 755 $(BinDir2)/* cp -rf $(BuildDir)/* $(RpmBuildDir)/BUILD/ #cp -rf $(BuildDir)/nginx $(RpmBuildDir)/BUILD/etc/ #cp -rf $(BuildDir)/systemd $(RpmBuildDir)/BUILD/lib/ cd $(RpmBuildDir) rpmbuild -bb -D "_topdir $(RpmBuildDir)" $(RpmBuildDir)/SPECS/omc.spec