You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rivet-dev@tcl.apache.org by pa...@apache.org on 2004/08/03 02:01:49 UTC

cvs commit: tcl-rivet/win Rivet.nsi makefile.vc

patthoyts    2004/08/02 17:01:49

  Modified:    win      makefile.vc
  Added:       win      Rivet.nsi
  Log:
  Added build targets to create compiled help file and a NSIS installer.
  
  Revision  Changes    Path
  1.6       +32 -1     tcl-rivet/win/makefile.vc
  
  Index: makefile.vc
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/win/makefile.vc,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- makefile.vc	30 Jun 2004 10:47:46 -0000	1.5
  +++ makefile.vc	3 Aug 2004 00:01:48 -0000	1.6
  @@ -378,6 +378,37 @@
   	$(lib32) -nologo -out:$@ $(PRJSTUBOBJS)
   
   #---------------------------------------------------------------------
  +# HTML Help
  +#---------------------------------------------------------------------
  +
  +# You may need to edit this, but this is the default location.
  +HHC = "C:\Program Files\HTML Help Workshop\hhc.exe"
  +HHP = $(DOCDIR)\$(PROJECT).hhp
  +
  +htmlhelp:
  +	@cd $(DOCDIR)
  +	@type << >$(HHP)
  +[OPTIONS]
  +Compatibility=1.1 or later
  +Compiled file=Rivet.chm
  +Display compile progress=No
  +Full-text search=Yes
  +Language=0x809 English (United Kingdom)
  +Title=Apache Rivet
  +;;Index file=Rivet.hhk
  +Default topic=html\index.en.html
  +
  +[FILES]
  +<<
  +	@for %i in (html\*.html) do @echo %i >> $(HHP)
  +	@$(HHC) $(HHP)
  +
  +# Create the Windows Nullsoft installer file.
  +MAKENSIS="C:\Program Files\NSIS\MakeNSIS.exe"
  +installer: $(PROJECT)
  +	$(MAKENSIS) $(PROJECT).nsi
  +
  +#---------------------------------------------------------------------
   # Implicit rules
   #---------------------------------------------------------------------
   
  
  
  
  1.1                  tcl-rivet/win/Rivet.nsi
  
  Index: Rivet.nsi
  ===================================================================
  ;; Rivet.nsi - Copyright (C) 2004 The Apache Software Foundation
  ;;
  ;; -------------------------------------------------------------------------
  ;;
  ;; This is an installer script to create a Windows installer for
  ;; Rivet.
  ;;
  ;; This script needs to be compiled by the NullSoft installer compiler.
  ;;
  ;; -------------------------------------------------------------------------
  ;;
  ;;   Copyright 2000-2004 The Apache Software Foundation
  ;;
  ;;   Licensed under the Apache License, Version 2.0 (the "License");
  ;;   you may not use this file except in compliance with the License.
  ;;   You may obtain a copy of the License at
  ;;
  ;;   	http://www.apache.org/licenses/LICENSE-2.0
  ;;
  ;;   Unless required by applicable law or agreed to in writing, software
  ;;   distributed under the License is distributed on an "AS IS" BASIS,
  ;;   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ;;   See the License for the specific language governing permissions and
  ;;   limitations under the License.
  ;;
  ;; -------------------------------------------------------------------------
  ;; $Id: Rivet.nsi,v 1.1 2004/08/03 00:01:48 patthoyts Exp $
  
  !include "MUI.nsh"
  
  Name "Rivet"
  OutFile "Rivet040.exe"
  SetCompressor lzma
  CRCCheck on
  ShowInstDetails hide
  XPStyle on
  
  Var APACHE_DIR
  InstallDir "$PROGRAMFILES\Tcl"
  
  ;; -------------------------------------------------------------------------
  ;; Version resource
  ;;
  ViProductVersion "0.4.0.0"
  VIAddVersionKey ProductName "Rivet"
  VIAddVersionKey CompanyName "Apache Software Foundation"
  VIAddVersionKey FileVersion "0.4.0.1"
  VIAddVersionKey ProductVersion "0.4.0.0"
  VIAddVersionKey LegalCopyright "Copyright (c) 2004 The Apache Software Foundation"
  VIAddVersionKey FileDescription "Apache Rivet Installer"
  
  ;; -------------------------------------------------------------------------
  ;; Language strings
  ;;
  LangString DESC_SecRivet ${LANG_ENGLISH} \
      "Install the Apache Rivet loadable module and Tcl libraries."
  LangString DESC_SecDocs ${LANG_ENGLISH} \
      "Install the Apache Rivet documentation -- a CHM help file."
  LangString DESC_SecConfig ${LANG_ENGLISH} \
      "Append a sample config section to your httpd.config file to \
      configure Apache 1.3 to use Rivet."
  LangString DESC_SecTests ${LANG_ENGLISH} \
      "Install the Apache Rivet test files. These can be used to check your \
       installation."
  
  LangString DESC_ApachePageTextFrame ${LANG_ENGLISH} \
      "Select the Apache installation 1.3 folder."
  LangString DESC_ApachePageText ${LANG_ENGLISH} \
      "The Rivet loadable module needs to be installed in your Apache 1.3 \
       modules folder so that Apache can find it.$\r$\n\
       You must select the Apache folder here - it is the folder that \
       contains Apache.exe"
  LangString DESC_TclPageTextFrame ${LANG_ENGLISH} \
      "Select the Tcl installation folder."
  LangString DESC_TclPageText ${LANG_ENGLISH} \
      "The Rivet Tcl packages need to be installed is a Tcl library folder. \
      $\r$\nThis is usually $\"\Program Files\Tcl\lib$\""
  LangString DESC_ApacheDirNotFound ${LANG_ENGLISH} \
      "You must select the folder containing the Apache 1.3 executable program \
      (Apache.exe)!"
  LangString DESC_FinishPageText ${LANG_ENGLISH} \
      "You should now edit your Apache httpd.conf file make use of Rivet."
  
  ;; -------------------------------------------------------------------------
  ;; Interface Settings
  
  !define MUI_ABORTWARNING
  
  ;; Ensure the APACHE_DIR variable really points to an Apache installation.
  Function ApacheDirValidate
      IfFileExists "$APACHE_DIR\Apache.exe" ApacheTrue ApacheFalse
    ApacheFalse:
      MessageBox MB_OK $(DESC_ApacheDirNotFound) /SD IDOK
      Abort
    ApacheTrue:
  FunctionEnd
  
  ;; Ensure the INSTDIR points to the library directory of a Tcl installation
  ;; unless the use has gone for a site library dir
  Function TclDirValidate
      IfFileExists "$INSTDIR\bin\tclsh.exe" TclTrue TclFalse
    TclTrue:
      StrCpy $INSTDIR "$INSTDIR\lib"
      DetailPrint "Adjusting INSTDIR to point at the library folder."
    TclFalse:
  FunctionEnd
  
  ;; -------------------------------------------------------------------------
  ;; Pages
  
  !insertmacro MUI_PAGE_WELCOME
  !insertmacro MUI_PAGE_LICENSE "..\LICENSE"
  !insertmacro MUI_PAGE_COMPONENTS
  !define MUI_DIRECTORYPAGE_TEXT_TOP $(DESC_TclPageText)
  !define MUI_DIRECTORYPAGE_TEXT_DESTINATION $(DESC_TclPageTextFrame)
  !define MUI_PAGE_CUSTOMFUNCTION_LEAVE TclDirValidate
  !insertmacro MUI_PAGE_DIRECTORY
  !define MUI_DIRECTORYPAGE_VARIABLE $APACHE_DIR
  !define MUI_DIRECTORYPAGE_TEXT_TOP $(DESC_ApachePageText)
  !define MUI_DIRECTORYPAGE_TEXT_DESTINATION $(DESC_ApachePageTextFrame)
  !define MUI_PAGE_CUSTOMFUNCTION_LEAVE ApacheDirValidate
  !insertmacro MUI_PAGE_DIRECTORY
  !define MUI_FINISHPAGE_NOAUTOCLOSE "True"
  !insertmacro MUI_PAGE_INSTFILES
  !define MUI_FINISHPAGE_TEXT $(DESC_FinishPageText)
  !insertmacro MUI_PAGE_FINISH
    
  !insertmacro MUI_UNPAGE_WELCOME
  !insertmacro MUI_UNPAGE_CONFIRM
  !insertmacro MUI_UNPAGE_INSTFILES
  !define MUI_UNFINISHPAGE_NOAUTOCLOSE "True"
  !insertmacro MUI_UNPAGE_FINISH
  
  ;; -------------------------------------------------------------------------
  ;; Installer Sections
  ;;
  Section "Rivet" SecRivet
      SectionIn RO
      IfFileExists "$INSTDIR\bin\tclsh.exe" TclTrue TclFalse
    TclTrue:
      StrCpy $INSTDIR "$INSTDIR\lib"
      DetailPrint "Adjusting INSTDIR to point at the library folder."
    TclFalse:
  
      SetOutPath "$INSTDIR\rivet0.4.0"
      File /r "..\rivet\rivet-tcl"
      File /r "..\rivet\packages"
      File "..\rivet\init.tcl"
      File "..\rivet\pkgIndex.tcl"
      File "..\rivet\README"
      RMDir /r "$INSTDIR\rivet0.4.0\packages\CVS"
      RMDir /r "$INSTDIR\rivet0.4.0\rivet-tcl\CVS"
      SetOutPath "$INSTDIR\rivet0.4.0\packages\rivet"
      File "Release\rivet.dll"
      File "Release\rivetparser.dll"
      FileOpen $R6 "pkgIndex.tcl" "w"
      FileWrite $R6 "package ifneeded Rivet 1.1 [list load [file join $$dir rivet.dll]]$\r$\n"
      FileWrite $R6 "package ifneeded rivetparser 0.2 [list load [file join $$dir rivetparser.dll]]$\r$\n"
      FileClose $R6
      SetOutPath "$APACHE_DIR\modules"
      File "Release\mod_rivet.so"
      WriteUninstaller "$INSTDIR\rivet0.4.0\Uninstall.exe"
  SectionEnd
  
  Section "Documentation" SecDocs
      SetOutPath "$INSTDIR\rivet0.4.0"
      File "..\doc\Rivet.chm"
  SectionEnd
  
  Section /o "Modify httpd.conf" SecConfig
      IfFileExists "$APACHE_DIR\conf\httpd.conf" ConfigAppend ConfigSkip
    ConfigAppend:
      FileOpen $R6 "$APACHE_DIR\conf\httpd.conf" "a"
      FileSeek $R6 0 END
      FileWrite $R6 "$\r$\nLoadModule rivet_module modules/mod_rivet.so$\r$\n$\r$\n"
      FileWrite $R6 "<IfModule mod_rivet.c>$\r$\n"
      FileWrite $R6 "    RivetServerConf CacheSize 50$\r$\n"
      FileWrite $R6 "    AddType application/x-httpd-rivet .rvt$\r$\n"
      FileWrite $R6 "    AddType application/x-rivet-tcl .tcl$\r$\n$\r$\n"
      FileWrite $R6 "    Alias /rivet/ $\"$INSTDIR/rivet0.4.0/tests/$\"$\r$\n"
      FileWrite $R6 "    <Directory $\"$INSTDIR/rivet0.4.0/tests/$\">$\r$\n"
      FileWrite $R6 "        Options Indexes FollowSymlinks MultiViews$\r$\n"
      FileWrite $R6 "        AllowOverride None$\r$\n"
      FileWrite $R6 "        Order allow,deny$\r$\n"
      FileWrite $R6 "        Allow from all$\r$\n"
      FileWrite $R6 "    </Directory>$\r$\n"
      FileWrite $R6 "</IfModule>$\r$\n"
      FileClose $R6
      DetailPrint "Appended section to $\"$APACHE_DIR\conf\httpd.conf$\"."
      Goto ConfigEnd
    ConfigSkip:
      DetailPrint "$\r$\nFailed to find file $\"$APACHE_DIR\conf\httpd.conf$\".$\r$\n\
      Skipping httpd.conf edit."
    ConfigEnd:
  SectionEnd
  
  Section /o "Test files" SecTests
      SetOutPath "$INSTDIR\rivet0.4.0\tests"
      File "..\tests\*.*"
  SectionEnd
  
  ;; -------------------------------------------------------------------------
  ;; Uninstaller Section
  ;;
  Section "Uninstall"
      RMDir /r "$INSTDIR"
      Delete "$APACHE_DIR\modules\mod_rivet.so"
  SectionEnd
   
  ;; -------------------------------------------------------------------------
  ;; Assign language strings to sections
  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
    !insertmacro MUI_DESCRIPTION_TEXT ${SecRivet}  $(DESC_SecRivet)
    !insertmacro MUI_DESCRIPTION_TEXT ${SecDocs}   $(DESC_SecDocs)
    !insertmacro MUI_DESCRIPTION_TEXT ${SecConfig} $(DESC_SecConfig)
    !insertmacro MUI_DESCRIPTION_TEXT ${SecTests}  $(DESC_SecTests)
  !insertmacro MUI_FUNCTION_DESCRIPTION_END
  
  !insertmacro MUI_LANGUAGE "English"
  
  ;; -------------------------------------------------------------------------
  ;; Initialize variables
  ;;
  Function .onInit
      StrCpy $APACHE_DIR "$PROGRAMFILES\Apache"
  FunctionEnd
  
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-cvs-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-cvs-help@tcl.apache.org