Skip to content

Commit 6f56205

Browse files
committed
initial commit
1 parent 40717da commit 6f56205

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+3531
-2
lines changed

.github/workflows/jinstall.yaml

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
name: Install
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
8+
# remove the following line to run
9+
# if: ${{ false }}
10+
11+
jobs:
12+
13+
# install --------------------------------------------------------------
14+
install:
15+
name: Installers
16+
runs-on: ubuntu-20.04
17+
steps:
18+
- name: Checkout Git repository
19+
uses: actions/checkout@v3
20+
21+
- name: Build
22+
run: |
23+
sudo apt-get install -y dos2unix
24+
script/build.sh
25+
26+
- name: Release
27+
uses: ncipollo/release-action@v1
28+
with:
29+
tag: build
30+
artifacts: "fbsd64.tar.gz,linux64.tar.gz,mac64.zip,obsd64.tar.gz,raspi32.tar.gz,raspi64.tar.gz,win64.zip,build.txt,revision.txt"
31+
token: ${{ secrets.GITHUB_TOKEN }}
32+
allowUpdates: true
33+
replacesArtifacts: true
34+
35+
# windows AIO ----------------------------------------------------------
36+
winaio:
37+
name: WinAIO
38+
runs-on: windows-latest
39+
needs: install
40+
steps:
41+
- name: Checkout Git repository
42+
uses: actions/checkout@v3
43+
env:
44+
password: ${{ secrets.PASSWORD }}
45+
url: https://github.com/${{github.repository}}
46+
47+
- name: Get revision
48+
uses: dsaltares/fetch-gh-release-asset@master
49+
with:
50+
file: 'revision.txt'
51+
target: 'revision.txt'
52+
token: ${{ secrets.GITHUB_TOKEN }}
53+
54+
- name: Get winzip
55+
uses: dsaltares/fetch-gh-release-asset@master
56+
with:
57+
file: 'win64.zip'
58+
target: 'win64.zip'
59+
token: ${{ secrets.GITHUB_TOKEN }}
60+
61+
- name: List
62+
shell: pwsh
63+
run: dir
64+
65+
- name: Get version
66+
shell: pwsh
67+
run: script\getversion.ps1
68+
69+
- name: Get files
70+
shell: pwsh
71+
run: script\getfiles.ps1 0
72+
73+
- name: Build AIO
74+
uses: joncloud/makensis-action@v4
75+
76+
- name: Rename build
77+
shell: pwsh
78+
run: script\rename.ps1 0
79+
80+
- name: Release WinAIO
81+
uses: ncipollo/release-action@v1
82+
with:
83+
tag: build
84+
artifacts: win64.exe
85+
token: ${{ secrets.GITHUB_TOKEN }}
86+
allowUpdates: true
87+
replacesArtifacts: true
88+
89+
# windows slim AIO -----------------------------------------------------
90+
winaios:
91+
name: WinAIOslim
92+
runs-on: windows-latest
93+
needs: install
94+
steps:
95+
- name: Checkout Git repository
96+
uses: actions/checkout@v3
97+
env:
98+
password: ${{ secrets.PASSWORD }}
99+
url: https://github.com/${{github.repository}}
100+
101+
- name: Get revision
102+
uses: dsaltares/fetch-gh-release-asset@master
103+
with:
104+
file: 'revision.txt'
105+
target: 'revision.txt'
106+
token: ${{ secrets.GITHUB_TOKEN }}
107+
108+
- name: Get winzip
109+
uses: dsaltares/fetch-gh-release-asset@master
110+
with:
111+
file: 'win64.zip'
112+
target: 'win64.zip'
113+
token: ${{ secrets.GITHUB_TOKEN }}
114+
115+
- name: List
116+
shell: pwsh
117+
run: dir
118+
119+
- name: Get version
120+
shell: pwsh
121+
run: script\getversion.ps1
122+
123+
- name: Get files
124+
shell: pwsh
125+
run: script\getfiles.ps1 1
126+
127+
- name: Build AIO
128+
uses: joncloud/makensis-action@v4
129+
130+
- name: Rename build
131+
shell: pwsh
132+
run: script\rename.ps1 0
133+
134+
- name: Release WinAIO
135+
uses: ncipollo/release-action@v1
136+
with:
137+
tag: build
138+
artifacts: win64_slim.exe
139+
token: ${{ secrets.GITHUB_TOKEN }}
140+
allowUpdates: true
141+
replacesArtifacts: true
142+
143+
# webhook --------------------------------------------------------------
144+
webhook:
145+
name: Run Webhook
146+
runs-on: ubuntu-20.04
147+
needs: [winaio, winaios]
148+
steps:
149+
- name: distribution
150+
uses: distributhor/workflow-webhook@v2
151+
env:
152+
webhook_url: ${{ secrets.WEBHOOK_URL }}
153+
webhook_secret: ${{ secrets.WEBHOOK_SECRET }}
154+
data: '{ "id": "jinstall" }'

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
meld.sh
2+
getje.sh
3+
test.sh
4+
makezips.sh

README.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,9 @@
1-
# jinstall
2-
J installers
1+
# build J installers
2+
#
3+
# release.txt has the J release number as major.minor e.g. 9.5.
4+
#
5+
# build.txt has a dummy build number.
6+
# Any change to it triggers copy build to the jsoftware server.
7+
# The number itself is unimportant, e.g. just increment it for a new build.
8+
#
9+
# Other files need not be changed.

aio/CPUFeatures.dll

9 KB
Binary file not shown.

aio/CPUFeatures.nsh

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
#################################
2+
# CPU features plug-in for NSIS #
3+
#################################
4+
5+
6+
### FUNCTION DECLARTIONS ###
7+
8+
!define CPUFeatures.GetFlags '!insertmacro _CPUFeatures_GetFlags' #Get CPU Flags as a single Hex value (for debugging only!)
9+
!define CPUFeatures.GetFeatures '!insertmacro _CPUFeatures_GetFeatures' #Get all supported CPU Features, returns a single string (comma-separated list)
10+
!define CPUFeatures.GetVendor '!insertmacro _CPUFeatures_GetVendor' #Get CPU vendor (e.g. "Intel" or "AMD"), returns a string
11+
!define CPUFeatures.CheckFeature '!insertmacro _CPUFeatures_CheckFeature' #Check for a specific feature (e.g. "MMX1"), returns "yes" or "no" or "error"
12+
!define CPUFeatures.CheckAllFeatures '!insertmacro _CPUFeatures_CheckAllFeatures' #Check for multiple features (comma-separated list), returns "yes" or "no" or "error"
13+
!define CPUFeatures.GetCount '!insertmacro _CPUFeatures_GetCount' #Get the number of CPU's (or more precise: CPU "cores")
14+
15+
16+
### SUPPORTED CPU FEATURE FLAGS ###
17+
18+
# MMX1 -> MMX supported
19+
# MMX2 -> MMX2 aka MMXEX aka Integer-SSE supported
20+
# SSE1 -> SSE supported
21+
# SSE2 -> SSE2 supported
22+
# SSE2_SLOW -> Most SSE2 functions are SLOW (e.g. Athlon64)
23+
# SSE2_FAST -> Some SSE2 functions are only faster on specific CPU's (Core2 and Phenom)
24+
# SSE3 -> SSE3 supported
25+
# SSSE3 -> SSSE3 supported
26+
# FAST_SHUFFLE -> Penryn, Nehalem, and Phenom have fast shuffle units
27+
# STACK_MOD4 -> Stack is only mod4, not mod16
28+
# SSE4 -> SSE4.1 supported
29+
# SSE4.2 -> SSE4.2 supported
30+
# SSE_MISALIGN -> Phenom support for misaligned SSE instruction arguments
31+
# LZCNT -> Phenom support for "leading zero count" instruction
32+
# SLOW_CTZ -> BSR/BSF x86 instructions are really slow
33+
# SLOW_ATOM -> Intel Atom ("the Atom just sucks")
34+
# AVX1 -> AVX supported, also by the OS (AVX requires OS support even if YMM registers aren't used)
35+
# XOP -> AMD XOP supported
36+
# FMA4 -> AMD FMA4 supported
37+
# AVX2 -> AVX2 supported
38+
# FMA3 -> Intel FMA3 supported
39+
# 3DNOW -> AMD 3DNow! supported
40+
# 3DNOW_EX -> AMD 3DNow!+ (aka Enhanced 3DNow!) supported
41+
42+
43+
### MACRO DEFINITIONS ###
44+
45+
!macro _CPUFeatures_GetFlags out
46+
CPUFeatures::GetCPUFlags /NOUNLOAD
47+
pop ${out}
48+
!macroend
49+
50+
!macro _CPUFeatures_GetFeatures out
51+
CPUFeatures::GetCPUFeatures /NOUNLOAD
52+
pop ${out}
53+
!macroend
54+
55+
!macro _CPUFeatures_GetVendor out
56+
CPUFeatures::GetCPUVendor /NOUNLOAD
57+
pop ${out}
58+
!macroend
59+
60+
!macro _CPUFeatures_CheckFeature feature out
61+
push `${feature}`
62+
CPUFeatures::CheckCPUFeature /NOUNLOAD
63+
pop ${out}
64+
!macroend
65+
66+
!macro _CPUFeatures_CheckAllFeatures feature_list out
67+
push `${feature_list}`
68+
CPUFeatures::CheckAllCPUFeatures /NOUNLOAD
69+
pop ${out}
70+
!macroend
71+
72+
!macro _CPUFeatures_GetCount out
73+
CPUFeatures::GetCPUCount /NOUNLOAD
74+
pop ${out}
75+
!macroend
76+
77+
78+
### LOGIC_LIB SUPPORT ###
79+
80+
!ifdef LOGICLIB
81+
; ${If} ${CPUSupports} <flag> ... ${EndIf}
82+
!macro _CPUSupports _a _b _t _f
83+
!insertmacro _LOGICLIB_TEMP
84+
push `${_b}`
85+
CPUFeatures::CheckCPUFeature /NOUNLOAD
86+
pop $_LOGICLIB_TEMP
87+
#StrCmp $_LOGICLIB_TEMP `error` 0 +2
88+
#MessageBox MB_ICONSTOP "CPUSupports_ Invalid CPU flags specified!"
89+
!insertmacro _== $_LOGICLIB_TEMP `yes` `${_t}` `${_f}`
90+
!macroend
91+
!define CPUSupports `"" CPUSupports`
92+
93+
; ${If} ${CPUSupportsAll} <flag_list> ... ${EndIf}
94+
!macro _CPUSupportsAll _a _b _t _f
95+
!insertmacro _LOGICLIB_TEMP
96+
push `${_b}`
97+
CPUFeatures::CheckAllCPUFeatures /NOUNLOAD
98+
pop $_LOGICLIB_TEMP
99+
#StrCmp $_LOGICLIB_TEMP `error` 0 +2
100+
#MessageBox MB_ICONSTOP "CPUSupportsAll: Invalid CPU flags specified!"
101+
!insertmacro _== $_LOGICLIB_TEMP `yes` `${_t}` `${_f}`
102+
!macroend
103+
!define CPUSupportsAll `"" CPUSupportsAll`
104+
105+
; ${If} ${CPUIsIntel} ... ${EndIf}
106+
!macro _CPUIsIntel _a _b _t _f
107+
!insertmacro _LOGICLIB_TEMP
108+
CPUFeatures::GetCPUVendor /NOUNLOAD
109+
pop $_LOGICLIB_TEMP
110+
!insertmacro _== $_LOGICLIB_TEMP `Intel` `${_t}` `${_f}`
111+
!macroend
112+
!define CPUIsIntel `"" CPUIsIntel ""`
113+
114+
; ${If} ${CPUIsAMD} ... ${EndIf}
115+
!macro _CPUIsAMD _a _b _t _f
116+
!insertmacro _LOGICLIB_TEMP
117+
CPUFeatures::GetCPUVendor /NOUNLOAD
118+
pop $_LOGICLIB_TEMP
119+
!insertmacro _== $_LOGICLIB_TEMP `AMD` `${_t}` `${_f}`
120+
!macroend
121+
!define CPUIsAMD `"" CPUIsAMD ""`
122+
!endif

0 commit comments

Comments
 (0)