windows Makefile.
This commit is contained in:
parent
5d0eed5eb1
commit
067ff9828d
@ -39,10 +39,10 @@ OBJECTS= complete.o console.o edit.o history.o menu.o
|
||||
|
||||
LIBS=-lgdi32 -lcomdlg32
|
||||
|
||||
all: plterm.dll
|
||||
all: ../../plterm.dll
|
||||
|
||||
plterm.dll: libplterm.a
|
||||
$(CC) $(CFLAGS) -shared -o plterm.dll \
|
||||
../../plterm.dll: libplterm.a
|
||||
$(CC) $(CFLAGS) -shared -o ../../plterm.dll \
|
||||
-Wl,--export-all-symbols \
|
||||
-Wl,--enable-auto-import \
|
||||
-Wl,--whole-archive libplterm.a \
|
||||
|
24
Makefile.in
24
Makefile.in
@ -402,7 +402,7 @@ PLCONS_OBJECTS = \
|
||||
pl-ntconsole.o \
|
||||
pl-ntmain.o
|
||||
|
||||
all: parms.h startup.yss
|
||||
all: parms.h startup.yss @ENABLE_WINCONSOLE@ pl-yap@EXEC_SUFFIX@
|
||||
|
||||
Makefile: $(srcdir)/Makefile.in
|
||||
|
||||
@ -718,9 +718,11 @@ yap@EXEC_SUFFIX@: $(HEADERS) yap.o @YAPLIB@
|
||||
|
||||
plyap: pl-yap@EXEC_SUFFIX@
|
||||
|
||||
pl-yap@EXEC_SUFFIX@: $(PLCONS_OBJECTS) $(HEADERS) @YAPLIB@ LGPL/swi_console/plterm.dll
|
||||
pl-yap: pl-yap@EXEC_SUFFIX@
|
||||
|
||||
pl-yap@EXEC_SUFFIX@: $(PLCONS_OBJECTS) $(HEADERS) @YAPLIB@
|
||||
(cd LGPL/swi_console; $(MAKE))
|
||||
$(MPI_CC) -municode -DUNICODE -D_UNICODE $(EXECUTABLE_CFLAGS) $(LDFLAGS) -Wl,-subsystem,windows -o pl-yap $(PLCONS_OBJECTS) LGPL/swi_console/plterm.dll @YAPLIB@ $(LIBS) @MPI_LIBS@
|
||||
$(MPI_CC) -municode -DUNICODE -D_UNICODE $(EXECUTABLE_CFLAGS) $(LDFLAGS) -Wl,-subsystem,windows -o pl-yap $(PLCONS_OBJECTS) plterm.dll @YAPLIB@ $(LIBS) @MPI_LIBS@
|
||||
|
||||
libYap.a: $(LIB_OBJECTS)
|
||||
-rm -f libYap.a
|
||||
@ -730,7 +732,7 @@ libYap.a: $(LIB_OBJECTS)
|
||||
@DYNYAPLIB@: $(LIB_OBJECTS)
|
||||
@YAPLIB_LD@ -o @YAPLIB@ $(LIB_OBJECTS) $(LIBS) $(LDFLAGS) $(SONAMEFLAG)
|
||||
|
||||
install: install_bin install_data
|
||||
install: install_bin install_data @ENABLE_WINCONSOLE@ pl-yap@EXEC_SUFFIX@
|
||||
|
||||
install_bin: @INSTALL_COMMAND@
|
||||
|
||||
@ -788,6 +790,8 @@ install_win32: startup.yss
|
||||
mkdir -p $(DESTDIR)$(INCLUDEDIR)
|
||||
$(INSTALL_PROGRAM) -m 755 yap.exe $(DESTDIR)$(BINDIR)/yap.exe
|
||||
$(INSTALL_PROGRAM) -m 755 yap.dll $(DESTDIR)$(BINDIR)/yap.dll
|
||||
@ENABLE_WINCONSOLE@ $(INSTALL_PROGRAM) -m 755 pl-yap.exe $(DESTDIR)$(BINDIR)/pl-yap.exe
|
||||
@ENABLE_WINCONSOLE@ $(INSTALL_PROGRAM) -m 755 plterm.dll $(DESTDIR)$(BINDIR)/plterm.dll
|
||||
$(INSTALL_PROGRAM) -m 755 @YAPLIB@ $(DESTDIR)$(YAPLIBDIR)/@YAPLIB@
|
||||
$(INSTALL_PROGRAM) -m 755 startup.yss $(DESTDIR)$(YAPLIBDIR)/startup.yss
|
||||
mkdir -p $(DESTDIR)$(SHAREDIR)/Yap
|
||||
@ -906,12 +910,12 @@ libWYap.a: yap.dll
|
||||
--dllname yap.dll \
|
||||
--output-lib libWYap.a
|
||||
|
||||
yap.dll: libYap.a
|
||||
$(CC) $(CFLAGS) -shared -o yap.dll \
|
||||
-Wl,--export-all-symbols \
|
||||
-Wl,--enable-auto-import \
|
||||
-Wl,--whole-archive libYap.a \
|
||||
-Wl,--no-whole-archive $(LIBS) $(LDFLAGS)
|
||||
# yap.dll: libYap.a
|
||||
# $(CC) $(CFLAGS) -shared -o yap.dll \
|
||||
# -Wl,--export-all-symbols \
|
||||
# -Wl,--enable-auto-import \
|
||||
# -Wl,--whole-archive libYap.a \
|
||||
# -Wl,--no-whole-archive $(LIBS) $(LDFLAGS)
|
||||
|
||||
install_info:
|
||||
$(MAKE) info; \
|
||||
|
@ -50,6 +50,8 @@ Section "Base system (required)"
|
||||
SetOutPath $INSTDIR\bin
|
||||
File c:\Yap\bin\yap.exe
|
||||
File c:\Yap\bin\yap.dll
|
||||
File c:\Yap\bin\pl-yap.exe
|
||||
File c:\Yap\bin\plterm.dll
|
||||
|
||||
SetOutPath $INSTDIR\bin
|
||||
; SYSTEM STUFF
|
||||
@ -89,9 +91,14 @@ Section "Start Menu shortcuts"
|
||||
CreateDirectory "$SMPROGRAMS\${GRP}"
|
||||
CreateShortCut "$SMPROGRAMS\${GRP}\Prolog.lnk" \
|
||||
"$INSTDIR\bin\yap.exe" \
|
||||
"--win_app" \
|
||||
"" \
|
||||
"$INSTDIR\bin\yap.exe" \
|
||||
0
|
||||
CreateShortCut "$SMPROGRAMS\${GRP}\PLYap.lnk" \
|
||||
"$INSTDIR\bin\pl-yap.exe" \
|
||||
"" \
|
||||
"$INSTDIR\bin\pl-yap.exe" \
|
||||
0
|
||||
SetOutPath $INSTDIR
|
||||
CreateShortCut "$SMPROGRAMS\${GRP}\Readme.lnk" \
|
||||
"$INSTDIR\doc\Yap\README.TXT" "" \
|
||||
|
273
misc/yap64.nsi
Executable file
273
misc/yap64.nsi
Executable file
@ -0,0 +1,273 @@
|
||||
; YAP install-script (from SWI-Prolog)
|
||||
|
||||
!define TEMP1 $R0 ; Temp variable
|
||||
!define EXT $3 ; Filename extension for Prolog sources
|
||||
!define CWD $4 ; Working directory for startmenu shortcut
|
||||
!define GRP $5 ; Startmenu group
|
||||
!define SHCTX $6 ; Shell context (current/all)
|
||||
!define ARCH $7 ; Architecture (x86, ia64 or amd64)
|
||||
!define REGKEY SOFTWARE\YAP\Prolog64
|
||||
|
||||
RequestExecutionLevel admin
|
||||
SetCompressor bzip2
|
||||
MiscButtonText "<back" "next>" "abort" "finished"
|
||||
|
||||
; Preload files that are needed by the installer itself
|
||||
ReserveFile "${NSISDIR}\Plugins\UserInfo.dll"
|
||||
ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
|
||||
ReserveFile "options.ini"
|
||||
|
||||
|
||||
InstallDir $PROGRAMFILES64\Yap64
|
||||
InstallDirRegKey HKLM ${REGKEY} "home"
|
||||
ComponentText "This will install YAP64 on your computer."
|
||||
DirText "This program will install YAP64 on your computer.\
|
||||
Choose a directory"
|
||||
|
||||
LicenseData c:\Yap64\share\doc\Yap\Artistic
|
||||
LicenseText "YAP64 is governed by the Artistic License,\
|
||||
but includes code under the GPL and LGPL."
|
||||
|
||||
InstType "Typical (all except debug symbols)" # 1
|
||||
InstType "Minimal (no graphics)" # 2
|
||||
InstType "Full" # 3
|
||||
|
||||
Page license
|
||||
Page directory
|
||||
Page custom SetCustom "" ": Installation options"
|
||||
Page instfiles
|
||||
|
||||
Section "Base system (required)"
|
||||
SectionIn RO # do not allow to delete this
|
||||
; make sure we use 64 bits registry
|
||||
SetRegView 64
|
||||
|
||||
Delete $INSTDIR\bin\*.pdb
|
||||
|
||||
SetOutPath $INSTDIR\bin
|
||||
File c:\Yap64\bin\yap.exe
|
||||
File c:\Yap64\bin\yap.dll
|
||||
File c:\Yap64\bin\pl-yap.exe
|
||||
File c:\Yap64\bin\plterm.dll
|
||||
|
||||
SetOutPath $INSTDIR\bin
|
||||
; SYSTEM STUFF
|
||||
File c:\Yap64\lib\Yap\*.dll
|
||||
|
||||
SetOutPath $INSTDIR\lib
|
||||
|
||||
SetOutPath $INSTDIR\lib
|
||||
; SYSTEM STUFF
|
||||
File c:\Yap64\lib\Yap\startup.yss
|
||||
|
||||
SetOutPath $INSTDIR\share
|
||||
; SYSTEM STUFF
|
||||
File /r c:\Yap64\share\Yap\*
|
||||
|
||||
SetOutPath $INSTDIR\doc\Yap
|
||||
File c:\Yap64\share\doc\Yap\yap.html
|
||||
File c:\Yap64\share\doc\Yap\yap.pdf
|
||||
File c:\Yap64\share\doc\Yap\Artistic
|
||||
File c:\Yap64\share\doc\Yap\README.TXT
|
||||
File c:\Yap64\share\doc\Yap\COPYING.TXT
|
||||
|
||||
WriteRegStr HKLM ${REGKEY} "home" "$INSTDIR"
|
||||
WriteRegStr HKLM ${REGKEY} "startup" "$INSTDIR\lib\startup.yss"
|
||||
WriteRegStr HKLM ${REGKEY} "library" "$INSTDIR\share"
|
||||
|
||||
; Write uninstaller
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\YAP64" "DisplayName" "YAP64 (remove only)"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\YAP64" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
||||
WriteUninstaller "uninstall.exe"
|
||||
SectionEnd
|
||||
|
||||
|
||||
Section "Start Menu shortcuts"
|
||||
SectionIn 1 2 3
|
||||
SetOutPath ${CWD}
|
||||
CreateDirectory "$SMPROGRAMS\${GRP}"
|
||||
CreateShortCut "$SMPROGRAMS\${GRP}\Prolog.lnk" \
|
||||
"$INSTDIR\bin\yap.exe" \
|
||||
"" \
|
||||
"$INSTDIR\bin\yap.exe" \
|
||||
0
|
||||
CreateShortCut "$SMPROGRAMS\${GRP}\PLYap.lnk" \
|
||||
"$INSTDIR\bin\pl-yap.exe" \
|
||||
"" \
|
||||
"$INSTDIR\bin\pl-yap.exe" \
|
||||
0
|
||||
SetOutPath $INSTDIR
|
||||
CreateShortCut "$SMPROGRAMS\${GRP}\Readme.lnk" \
|
||||
"$INSTDIR\doc\Yap\README.TXT" "" \
|
||||
"$INSTDIR\doc\Yap\README.TXT" 0 \
|
||||
"SW_SHOWNORMAL" "" "View readme"
|
||||
CreateShortCut "$SMPROGRAMS\${GRP}\Manual Html.lnk" \
|
||||
"$INSTDIR\doc\Yap\yap.html" "" \
|
||||
"$INSTDIR\doc\Yap\yap.html" 0 \
|
||||
"SW_SHOWNORMAL" "" "View readme"
|
||||
CreateShortCut "$SMPROGRAMS\${GRP}\Manual PDF.lnk" \
|
||||
"$INSTDIR\doc\Yap\yap.pdf" "" \
|
||||
"$INSTDIR\doc\Yap\yap.pdf" 0 \
|
||||
"SW_SHOWNORMAL" "" "View readme"
|
||||
CreateShortCut "$SMPROGRAMS\${GRP}\Uninstall.lnk" \
|
||||
"$INSTDIR\uninstall.exe" \
|
||||
"" \
|
||||
"$INSTDIR\uninstall.exe" \
|
||||
0
|
||||
|
||||
WriteRegStr HKLM ${REGKEY} group ${GRP}
|
||||
WriteRegStr HKLM ${REGKEY} cwd ${CWD}
|
||||
WriteRegStr HKLM ${REGKEY} context ${SHCTX}
|
||||
SectionEnd
|
||||
|
||||
################################################################
|
||||
# The uninstaller
|
||||
################################################################
|
||||
|
||||
UninstallText "This will uninstall YAP.64 Hit Uninstall to continue."
|
||||
|
||||
Section "Uninstall"
|
||||
ReadRegStr ${EXT} HKLM Software\YAP\Prolog64 fileExtension
|
||||
ReadRegStr ${GRP} HKLM Software\YAP\Prolog64 group
|
||||
ReadRegStr ${SHCTX} HKLM Software\YAP\Prolog64 context
|
||||
|
||||
StrCmp ${SHCTX} "all" 0 +2
|
||||
SetShellVarContext all
|
||||
|
||||
MessageBox MB_YESNO "Delete the following components?$\r$\n \
|
||||
Install dir: $INSTDIR$\r$\n \
|
||||
Extension: ${EXT}$\r$\n \
|
||||
Program Group ${GRP}" \
|
||||
IDNO Done
|
||||
|
||||
StrCmp ".${EXT}" "" NoExt
|
||||
ReadRegStr $1 HKCR .${EXT} ""
|
||||
StrCmp $1 "PrologFile" 0 NoOwn ; only do this if we own it
|
||||
ReadRegStr $1 HKCR .${EXT} "backup_val"
|
||||
StrCmp $1 "" 0 RestoreBackup ; if backup == "" then delete the whole key
|
||||
DeleteRegKey HKCR .${EXT}
|
||||
Goto NoOwn
|
||||
RestoreBackup:
|
||||
WriteRegStr HKCR .${EXT} "" $1
|
||||
DeleteRegValue HKCR .${EXT} "backup_val"
|
||||
NoOwn:
|
||||
NoExt:
|
||||
|
||||
StrCmp "${GRP}" "" NoGrp
|
||||
MessageBox MB_OK "Deleting $SMPROGRAMS\${GRP}"
|
||||
RMDir /r "$SMPROGRAMS\${GRP}"
|
||||
NoGrp:
|
||||
|
||||
IfFileExists "$INSTDIR\bin\yap.exe" 0 NoDir
|
||||
RMDir /r "$INSTDIR"
|
||||
goto Done
|
||||
|
||||
NoDir:
|
||||
MessageBox MB_OK "Folder $INSTDIR doesn't seem to contain Prolog"
|
||||
|
||||
Done:
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\YAP64"
|
||||
DeleteRegKey HKLM ${REGKEY}
|
||||
SectionEnd
|
||||
|
||||
################################################################
|
||||
# FUNCTIONS
|
||||
################################################################
|
||||
|
||||
Function .onInit
|
||||
|
||||
;Extract InstallOptions files
|
||||
;$PLUGINSDIR will automatically be removed when the installer closes
|
||||
|
||||
InitPluginsDir
|
||||
File /oname=$PLUGINSDIR\options.ini "options.ini"
|
||||
|
||||
FunctionEnd
|
||||
|
||||
################################################################
|
||||
# Handle customisation; Settings are maintained in
|
||||
#
|
||||
# HKLM ${REGKEY}
|
||||
#
|
||||
# Using the following mapping:
|
||||
#
|
||||
# ${EXT} fileExtension
|
||||
################################################################
|
||||
|
||||
Function SetCustom
|
||||
# Basic system info
|
||||
Call UserInfo
|
||||
|
||||
# Filename extension
|
||||
ReadRegStr ${EXT} HKLM ${REGKEY} fileExtension
|
||||
StrCmp ${EXT} "" 0 HasExt
|
||||
StrCpy ${EXT} "pl"
|
||||
HasExt:
|
||||
WriteINIStr $PLUGINSDIR\options.ini "Field 4" "State" ${EXT}
|
||||
|
||||
# Startmenu program group
|
||||
ReadRegStr ${GRP} HKLM ${REGKEY} group
|
||||
StrCmp ${GRP} "" 0 HasGroup
|
||||
StrCpy ${GRP} "YAP64"
|
||||
HasGroup:
|
||||
WriteINIStr $PLUGINSDIR\options.ini "Field 6" "State" ${GRP}
|
||||
|
||||
# Start the dialog
|
||||
Push ${TEMP1}
|
||||
InstallOptions::dialog "$PLUGINSDIR\options.ini"
|
||||
Pop ${TEMP1}
|
||||
Pop ${TEMP1}
|
||||
|
||||
# Get the results
|
||||
ReadINIStr ${EXT} $PLUGINSDIR\options.ini "Field 4" "State"
|
||||
ReadINIStr ${GRP} $PLUGINSDIR\options.ini "Field 6" "State"
|
||||
FunctionEnd
|
||||
|
||||
Function UserInfo
|
||||
ClearErrors
|
||||
UserInfo::GetName
|
||||
IfErrors Win9x
|
||||
Pop $0
|
||||
UserInfo::GetAccountType
|
||||
Pop $1
|
||||
|
||||
StrCmp $1 "Admin" 0 +4
|
||||
SetShellVarContext all
|
||||
StrCpy ${SHCTX} "all"
|
||||
Goto done
|
||||
StrCmp $1 "Power" 0 +3
|
||||
StrCpy ${SHCTX} "all"
|
||||
Goto done
|
||||
StrCmp $1 "User" 0 +3
|
||||
StrCpy ${SHCTX} "current"
|
||||
Goto done
|
||||
StrCmp $1 "Guest" 0 +3
|
||||
StrCpy ${SHCTX} "current"
|
||||
Goto done
|
||||
StrCpy ${SHCTX} "current" # Unkown accounttype
|
||||
Goto done
|
||||
|
||||
Win9x:
|
||||
StrCpy ${SHCTX} "current"
|
||||
Goto end
|
||||
|
||||
done:
|
||||
StrCmp ${SHCTX} "all" 0 +2
|
||||
SetShellVarContext all
|
||||
|
||||
end:
|
||||
FunctionEnd
|
||||
|
||||
Function .onInstSuccess
|
||||
MessageBox MB_YESNO "Installation complete. View readme?" IDNO NoReadme
|
||||
ExecShell "open" "$INSTDIR\doc\README.TXT"
|
||||
NoReadme:
|
||||
FunctionEnd
|
||||
|
||||
Function .onInstFailed
|
||||
MessageBox MB_OK "Installation failed.$\r$\n\
|
||||
If you cannot resolve the issue or it is a bug in the$\r$\n\
|
||||
installer, please contact yap-users@sf.net"
|
||||
FunctionEnd
|
||||
|
||||
outfile "yap64-6.3.0-installer.exe"
|
Reference in New Issue
Block a user