mirror of
				https://github.com/lxsang/antos-frontend.git
				synced 2025-10-30 18:05:39 +01:00 
			
		
		
		
	
		
			All checks were successful
		
		
	
	AntOS front-end / Build-AntOS-Frontend (push) Successful in 35s
				
			
		
			
				
	
	
		
			251 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			251 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| 
 | |
| 
 | |
| BUILDDIR?=/opt/www/htdocs/os
 | |
| DOCDIR?=/opt/www/htdocs/doc/antos
 | |
| BLUE=\033[1;34m
 | |
| NC=\033[0m
 | |
| TSC=./node_modules/typescript/bin/tsc
 | |
| UGLIFYJS=./node_modules/terser/bin/terser
 | |
| UGLIFYCSS=./node_modules/uglifycss/uglifycss
 | |
| 
 | |
| VERSION?=2.0.3-b
 | |
| BUILDID?=master
 | |
| 
 | |
| GSED=sed
 | |
| UNAME_S := $(shell uname -s)cd
 | |
| ifeq ($(UNAME_S),Darwin)
 | |
| 	GSED=gsed
 | |
| endif
 | |
| 
 | |
| tags = 	dist/core/tags/tag.js \
 | |
| 		dist/core/tags/WindowTag.js \
 | |
| 		dist/core/tags/TileLayoutTags.js \
 | |
| 		dist/core/tags/ResizerTag.js \
 | |
| 		dist/core/tags/LabelTag.js \
 | |
| 		dist/core/tags/ButtonTag.js \
 | |
| 		dist/core/tags/ListViewTag.js \
 | |
| 		dist/core/tags/SwitchTag.js \
 | |
| 		dist/core/tags/NSpinnerTag.js \
 | |
| 		dist/core/tags/GridViewTag.js \
 | |
| 		dist/core/tags/TabBarTag.js \
 | |
| 		dist/core/tags/TabContainerTag.js \
 | |
| 		dist/core/tags/TreeViewTag.js \
 | |
| 		dist/core/tags/SliderTag.js \
 | |
| 		dist/core/tags/FloatListTag.js \
 | |
| 		dist/core/tags/CalendarTag.js \
 | |
| 		dist/core/tags/ColorPickerTag.js \
 | |
| 		dist/core/tags/FileViewTag.js \
 | |
| 		dist/core/tags/OverlayTag.js \
 | |
| 		dist/core/tags/AppDockTag.js \
 | |
| 		dist/core/tags/SystemPanelTag.js \
 | |
| 		dist/core/tags/DesktopTag.js \
 | |
| 		dist/core/tags/StackMenuTag.js \
 | |
| 		dist/core/tags/StackPanelTag.js \
 | |
| 		dist/core/tags/InputTag.js \
 | |
| 		dist/core/tags/NotificationTag.js
 | |
| 
 | |
| javascripts= 	dist/core/core.js \
 | |
| 				dist/core/settings.js \
 | |
| 				dist/core/handles/RemoteHandle.js \
 | |
| 				dist/core/Announcerment.js \
 | |
| 				dist/core/vfs.js \
 | |
| 				dist/core/BaseModel.js \
 | |
| 				dist/core/BaseApplication.js \
 | |
| 				dist/core/BaseService.js \
 | |
| 				dist/core/BaseDialog.js \
 | |
| 				$(tags) \
 | |
| 				dist/core/gui.js \
 | |
| 				dist/core/pm.js \
 | |
| 				dist/bootstrap.js
 | |
| 
 | |
| antfx = $(tags) \
 | |
| 		dist/core/Announcerment.js
 | |
|  
 | |
| packages = SystemServices SystemReport Files MarketPlace  Setting  NotePad
 | |
| 
 | |
| main: initd build_javascripts build_themes libs  build_packages languages
 | |
| 	- cp src/index.html $(BUILDDIR)/
 | |
| 	- cp README.md $(BUILDDIR)/
 | |
| 
 | |
| initd:
 | |
| 	- mkdir -p $(BUILDDIR)
 | |
| 
 | |
| lite: build_javascripts build_themes build_packages
 | |
| #%.js: %.coffee
 | |
| #		coffee --compile $<
 | |
| 
 | |
| ts:
 | |
| 	-rm -rf dist
 | |
| 	$(TSC) -p tsconfig.json
 | |
| 	cat `find dist/core/ -name "*.d.ts"` > d.ts/antos.d.ts
 | |
| 	rm `find dist/ -name "*.d.ts"`
 | |
| 	cat d.ts/core.d.ts d.ts/jquery.d.ts d.ts/antos.d.ts > /tmp/corelib.d.ts
 | |
| 	#-rm src/packages/CodePad/libs/corelib.d.ts.zip
 | |
| 	#zip -j src/packages/CodePad/libs/corelib.d.ts.zip /tmp/corelib.d.ts
 | |
| 
 | |
| standalone_tags: ts
 | |
| 	@echo "$(BLUE)Bundling standalone tags files$(NC)"
 | |
| 	- mkdir -p $(BUILDDIR)
 | |
| 	- rm $(BUILDDIR)/afx*
 | |
| 	#echo "(function() {" > $(BUILDDIR)/scripts/antos.js
 | |
| 	for f in $(antfx); do \
 | |
| 		(cat "$${f}"; echo) >> dist/afx.js;\
 | |
| 		rm "$${f}";\
 | |
| 	done
 | |
| 	echo "var Ant=this;" >> dist/afx.js
 | |
| 	$(UGLIFYJS) dist/afx.js --compress --mangle --output $(BUILDDIR)/afx.js
 | |
| 	# standalone theme
 | |
| 
 | |
| 	@for f in src/themes/system/afx-*.css; do \
 | |
| 		if [ "$$f" != "src/themes/system/antos.css" ]; then \
 | |
| 			echo "$$f"; \
 | |
| 			(cat "$${f}"; echo) >> $(BUILDDIR)/afx.css; \
 | |
| 		fi;\
 | |
| 	done
 | |
| 
 | |
| 	@for f in src/themes/antos_light/afx-*.css; do \
 | |
| 		if [ "$$f" != "src/themes/antos_light/antos.css" ]; then \
 | |
| 			echo "$$f"; \
 | |
| 			(cat "$${f}"; echo) >> $(BUILDDIR)/afx.css; \
 | |
| 		fi;\
 | |
| 	done
 | |
| 	# $(UGLIFYCSS)  --output $(BUILDDIR)/afx.css $(BUILDDIR)/afx.css
 | |
| 	rm -r dist/core
 | |
| 
 | |
| build_javascripts: ts
 | |
| 	@echo "$(BLUE)Bundling javascript files$(NC)"
 | |
| 	- mkdir -p $(BUILDDIR)/scripts
 | |
| 	- rm $(BUILDDIR)/scripts/antos.js
 | |
| 	#echo "(function() {" > $(BUILDDIR)/scripts/antos.js
 | |
| 	for f in $(javascripts); do \
 | |
| 		(cat "$${f}"; echo) >> dist/antos.js;\
 | |
| 		rm "$${f}";\
 | |
| 	done
 | |
| 	echo 'OS.VERSION.version_string = "$(VERSION)-$(BUILDID)";' >> dist/antos.js
 | |
| 	cp dist/antos.js $(BUILDDIR)/scripts/
 | |
| 	echo "if(exports){ exports.__esModule = true;exports.OS = OS; }" >> dist/antos.js
 | |
| 	rm -r dist/core
 | |
| libs:
 | |
| 	@echo "$(BLUE)Copy lib files$(NC)"
 | |
| 	cp -rf src/libs/* $(BUILDDIR)/scripts/
 | |
| 
 | |
| testdata:
 | |
| 	@echo "$(BLUE)Copy JSON test files$(NC)"
 | |
| 	- mkdir -p $(BUILDDIR)/resources/jsons
 | |
| 	cp src/core/handlers/jsons/* $(BUILDDIR)/resources/jsons
 | |
| 
 | |
| languages:
 | |
| 	-mkdir -p $(BUILDDIR)/resources
 | |
| 	-mkdir -p $(BUILDDIR)/resources/languages
 | |
| 	cp src/core/languages/*.json $(BUILDDIR)/resources/languages/
 | |
| 
 | |
| genlang:
 | |
| 	read -r -p "Enter locale: " LOCAL;\
 | |
| 		./src/core/languages/gen.sh ./src ./src/core/languages/$$LOCAL.json
 | |
| build_themes: antos_light antos_dark
 | |
| 	-rm -rf $(BUILDDIR)/resources/themes/system/*
 | |
| 	-mkdir -p $(BUILDDIR)/resources/themes/system
 | |
| 	cp -r src/themes/system/fonts $(BUILDDIR)/resources/themes/system
 | |
| 	cp -r src/themes/system/icons $(BUILDDIR)/resources/themes/system
 | |
| 	cp -r src/themes/system/wp $(BUILDDIR)/resources/themes/system
 | |
| 	for f in src/themes/system/*.css; do (cat "$${f}"; echo) >> $(BUILDDIR)/resources/themes/system/system.css;done
 | |
| 	for f in src/themes/default/*.css; do (cat "$${f}"; echo) >> $(BUILDDIR)/resources/themes/system/antos.css;done
 | |
| 
 | |
| antos_light:
 | |
| 	@echo "$(BLUE)Building themes name: antos-light$(NC)"
 | |
| 	-rm -rf $(BUILDDIR)/resources/themes/antos_light/*
 | |
| 	-mkdir -p $(BUILDDIR)/resources/themes/antos_light
 | |
| 	for f in src/themes/antos_light/*.css; do (cat "$${f}"; echo) >> $(BUILDDIR)/resources/themes/antos_light/antos_light.css;done
 | |
| 
 | |
| 
 | |
| antos_dark:
 | |
| 	@echo "$(BLUE)Building themes name: antos-dark$(NC)"
 | |
| 	-rm -rf $(BUILDDIR)/resources/themes/antos_dark/*
 | |
| 	-mkdir -p $(BUILDDIR)/resources/themes/antos_dark
 | |
| 	for f in src/themes/antos_dark/*.css; do (cat "$${f}"; echo) >> $(BUILDDIR)/resources/themes/antos_dark/antos_dark.css;done
 | |
| 
 | |
| 
 | |
| build_packages:
 | |
| 	- mkdir -p $(BUILDDIR)/packages
 | |
| 	- for d in $(packages); do ( test -d $(BUILDDIR)/packages/$$d && rm -rf $(BUILDDIR)/packages/$$d/* ); done
 | |
| 	for d in $(packages); do (cd src/packages/$$d; make);done
 | |
| 	for d in $(packages); do ( test -d $(BUILDDIR)/packages/$$d || mkdir -p $(BUILDDIR)/packages/$$d && cp -rf src/packages/$$d/build/* $(BUILDDIR)/packages/$$d/);done
 | |
| 	for d in $(packages); do ( test -d src/packages/$$d/build && rm -r src/packages/$$d/build ); done
 | |
| 
 | |
| package:
 | |
| 	read -r -p "Enter package name: " PKG;\
 | |
| 	test -d $(BUILDDIR)/packages/$$PKG && rm -rf $(BUILDDIR)/packages/$$PKG/*;\
 | |
| 	cd src/packages/$$PKG && make;\
 | |
| 	cd ../../../;\
 | |
| 	test -d $(BUILDDIR)/packages/$$PKG || mkdir -p $(BUILDDIR)/packages/$$PKG;\
 | |
| 	cp -rfv src/packages/$$PKG/build/* $(BUILDDIR)/packages/$$PKG/;\
 | |
| 	test -d src/packages/$$PKG/build && rm -r src/packages/$$PKG/build;
 | |
| 
 | |
| pkgar:
 | |
| 	read -r -p "Enter package name: " PKG;\
 | |
| 	echo $$PKG | make package &&\
 | |
| 	test -f $(BUILDDIR)/packages/$$PKG/main.js  &&  $(UGLIFYJS) $(BUILDDIR)/packages/$$PKG/main.js --compress --mangle --output $(BUILDDIR)/packages/$$PKG/main.js;\
 | |
| 	test -f $(BUILDDIR)/packages/$$PKG/main.css  &&  $(UGLIFYCSS) --output $(BUILDDIR)/packages/$$PKG/main.css $(BUILDDIR)/packages/$$PKG/main.css;\
 | |
| 	cd $(BUILDDIR)/packages/$$PKG && zip -r "$$PKG.zip" ./ ; \
 | |
| 	cd ../../ && (test -d repo/$$PKG || mkdir repo/$$PKG) && mv packages/$$PKG/"$$PKG.zip" repo/$$PKG && touch repo/$$PKG/$$PKG.md && rm -r packages/$$PKG
 | |
| 
 | |
| uglify:
 | |
| 	# sudo npm install $(UGLIFYJS) -g
 | |
| 	#
 | |
| 	mv $(BUILDDIR)/scripts/antos.js $(BUILDDIR)/scripts/antos_src.js
 | |
| 	cp $(BUILDDIR)/scripts/antos_src.js ./
 | |
| 	$(UGLIFYJS) antos_src.js  --compress --mangle --output antos.js --source-map "url='antos.js.map'"
 | |
| 	mv antos.js* $(BUILDDIR)/scripts/
 | |
| 	rm antos_src.js
 | |
| 
 | |
| 	# uglify tags
 | |
| 	# npm install $(UGLIFYCSS) -g
 | |
| 	# uglify the css
 | |
| 	$(UGLIFYCSS)  --output $(BUILDDIR)/resources/themes/antos_light/antos_light.css $(BUILDDIR)/resources/themes/antos_light/antos_light.css
 | |
| 	$(UGLIFYCSS)  --output $(BUILDDIR)/resources/themes/antos_dark/antos_dark.css $(BUILDDIR)/resources/themes/antos_dark/antos_dark.css
 | |
| 	$(UGLIFYCSS)  --output $(BUILDDIR)/resources/themes/system/system.css $(BUILDDIR)/resources/themes/system/system.css
 | |
| 	#uglify each packages
 | |
| 
 | |
| 	for d in $(packages); do\
 | |
| 		echo "Uglifying $$d";\
 | |
| 		test -f $(BUILDDIR)/packages/$$d/main.js  &&  \
 | |
| 			$(UGLIFYJS) $(BUILDDIR)/packages/$$d/main.js \
 | |
| 			--compress --mangle --output $(BUILDDIR)/packages/$$d/main.js;\
 | |
| 		test -f $(BUILDDIR)/packages/$$d/main.css  &&  $(UGLIFYCSS) --output $(BUILDDIR)/packages/$$d/main.css $(BUILDDIR)/packages/$$d/main.css;\
 | |
| 	done
 | |
| 
 | |
| ar:
 | |
| 	-[ -d /tmp/antos-$(VERSION) ] && rm -r /tmp/antos-$(VERSION)
 | |
| 	-[ -f /tmp/antos-$(VERSION).tar.gz ] && rm /tmp/antos-$(VERSION).tar.gz
 | |
| 	mkdir /tmp/antos-$(VERSION)
 | |
| 	BUILDDIR=/tmp/antos-$(VERSION) make release
 | |
| 	cd /tmp/antos-$(VERSION) && tar cvzf ../antos-$(VERSION).tar.gz .
 | |
| 	mv /tmp/antos-$(VERSION).tar.gz release/
 | |
| 	echo -n $(VERSION) > release/latest
 | |
| 
 | |
| release: main uglify
 | |
| .PHONY: doc release clean
 | |
| doc:
 | |
| 	#  npm install typedoc --save-dev
 | |
| 	# npm install typedoc-plugin-merge-modules --save-dev
 | |
| 	# ./node_modules/.bin/typedoc --mode file --excludeNotExported  --hideGenerator  --name "AntOS $(VERSION)-$(BUILDID) API" --out $(DOCDIR)
 | |
| 	./node_modules/.bin/typedoc --hideGenerator --plugin typedoc-plugin-merge-modules  --entryPointStrategy expand --name "AntOS $(VERSION)-$(BUILDID) API" --out $(DOCDIR)
 | |
| 
 | |
| test: build_javascripts
 | |
| 	jest
 | |
| 
 | |
| install_dev:
 | |
| 	npm init -y
 | |
| 	npm install terser
 | |
| 	npm install uglifycss
 | |
| 	npm install typescript@5.0
 | |
| 	npm install @types/jquery
 | |
| 	npm i typedoc
 | |
| 	npm i typedoc-plugin-merge-modules
 | |
| 
 | |
| clean:
 | |
| 	rm -rf $(BUILDDIR)/resources
 | |
| 	rm -rf $(BUILDDIR)/scripts
 | |
| 	rm -rf $(BUILDDIR)/packages
 | |
| 	rm -rf $(BUILDDIR)/index.html
 |