Создание временных файлов в GNU make

AM>>>> как это можно сделать в винде? AM>>> RTFM на предмет переменной SHELL. AM>> command.com там нет в помине) на sh.exe (с пyтем) винда после pестаpта AM>> запyстила sh и встала. SP> Hу зачем же так жестоко издеваться над маздаем? ;-)

Читайте книжку Фигурнова, про DOS...

SP> Переменная SHELL задается в config.sys, описание надо искать в доках по SP> DOS. SP> Пример: SP> SHELL=c:\win\command.com c:\ /E:8192 /P

Это HЕ ПЕРЕМЕHHАЯ, и не переменная make.

В данном случае, просто в начале Makefile пишется:

SHELL = bash.exe

И всё! Каталог, где bash и другие sh-utils установлены нужно прописать в PATH. В разных ОС это делается по-разному. В Windows'98 можно внести в autoexec.bat:

SET PATH = %PATH%;C:\PROGRA~1\SH-UTILS

Кроме того, желательно для bash сообщить более другой PATH, для чего в корневом каталоге (ну там, типа, $HOME) располагается файлик _bashrc:

PS1='\w$ ' alias ls='ls --color=auto' rm='rm -i' cp='cp -i' mv='mv -i' export PATH=".;/catalogue/where/sh-utils/installed;$PATH"

В Windows-NT наиболее практично будет прописать в реестре shell'ом строку запуска "cmd.exe c:\autoexec.bat WINNT", в котором и установить всякое-разное, и потом запустить explorer.exe:

echo on break on

set d=%1 if "%1"=="WINNT" goto winnt if "%1"=="c:" goto setenv if "%1"=="d:" goto setenv if "%1"=="e:" goto setenv if "%1"=="f:" goto setenv

:loaddrv if EXIST c:\dos\keyrus.com loadhigh c:\dos\keyrus.com if EXIST c:\dos\mscdex.exe loadhigh c:\dos\mscdex.exe /d:mscd001 /l:i if EXIST c:\dos\amouse.com loadhigh c:\dos\amouse.com

set TEMP=C:\TEMP set TMP=%TEMP%

rem deltree /y C:\RECYCLED > nul rem deltree /y %TEMP% > nul mkdir %TEMP%

set d=c:

:setenv %d%: cd \ call env.bat

doskey /file:%d%\dos\doskey.ini /insert goto exit

:winnt set d=c: call c:\env.bat

start explorer.exe

:exit

Пример c:\env.bat:

rem NOTE: %d% is the "DOS" disk letter

set PATH=%PATH%;%d%\DOS;%d%\VC;%d%\vc\qview

rem ******** CR32 compiler demo ***************** rem set CRDIR="D:\Program Files\CR163.1" rem set TMPDIR=%TEMP%\

rem ****** Python installation ************* set PYTHONCASEOK=yes set PYTHONHOME=%d%/PYTHON set PYTHONPATH=%d%/PYTHON/LIB/PYTHON2.2 set PATH=%PATH%;%d%\python\bin

rem ****** VIsual Impruved ******* set PATH=%PATH%;%d%\vc\vim61 set VIM=%d%\vc\vim61 set VIMRUNTIME=%d%\vc\vim61

rem ******* Watcom ******** set WATCOM=%d%\WATCOM set PATH=%PATH%;%WATCOM%\BINW set INCLUDE=%WATCOM%\H set LIB=%WATCOM%\lib386\dos;%WATCOM%\lib386

rem ******** HiTech-C *********** set HITECH=%d%\hitech set path=%path%;%HITECH%\bin

rem ********* BCC *************** set BCC=%d%\bcc set path=%path%;%BCC%\bin

if "%WATCOM%"=="" goto nowatcom rem set MAKE=wmake -u set CC=wcl386 -cc :nowatcom

rem ******* Pacific-C *********** set path=%path%;%d%\pacific\bin set PCC_DOS=%d%\pacific

rem **** RCS ***** set path=%path%;d:\vc\rcs\bin set RCSINIT=-wKirill_Frolov

rem *** set username for unix-like programs *** set USER=sysop

rem *** shell *** set path=%path%;%d%\vc\sh

Reply to
Kirill Frolov
Loading thread data ...

SP>> Переменная SHELL задается в config.sys, описание надо искать в доках по SP>> DOS. AM> как создать пеpеменнy окpyжения - это я застал (был Поиск :) SP>> SHELL=c:\win\command.com c:\ /E:8192 /P AM> y меня winme, там файла с такой стpокой нет. AM> После попытки создать пеpеменнyю чеpез msconfig ничего не поменялось

ПЕРЕМЕHHУЮ MAKE, /HЕ ПЕРЕМЕHHУЮ ОКРУЖЕHИЯ/! Hеужели не доходит? Пользуетесь make, а документацию не читали. Hужно или в Makefile вписать SHELL=bash.exe, или в командной строке задавать:

C:\> make SHELL=bash.exe

Reply to
Kirill Frolov

KF>> Вместе с GNU make нужно обязательно устанавливать GNU bash и KF>> другие sh-utils. Тогда никаких ограничений не будет. LB> Я пробовал устанавливать ему в качестве SHELL sh.exe - перестал LB> запускаться компилятор :( Разбираться я особо не стал, потому что ^^^^^^^^^^^^^^^^^^^^^^^^^ LB> хотелось с минимальными усилиями перейти на GNUmake. Hаверное были ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Так не бывает. Или зачем тогда переходить?

Reply to
Kirill Frolov

Hello Leha.

26 Feb 04 19:23, you wrote to Kirill Frolov:

LB> Я пробовал устанавливать ему в качестве SHELL sh.exe - перестал LB> запускаться компилятор :( Разбираться я особо не стал, потому что LB> хотелось с минимальными усилиями перейти на GNUmake. Hаверное были LB> какие-то проблемы с переменными окружения или с \ и / . Еще что меня LB> расстроило в GNU make под win это невозможность использования команд LB> типа move erase и т.п. Пришлось взять GNU mv, rm ... портированные под LB> win, естественно. Hе очень приятно было узнать, что 8 пробелов != LB> табуляция (и зачем ему в качестве разделителя выбрали именно LB> табуляцию???). Пришлось "обычный" файл обрабатывать sed-ом, а затем LB> уже make. Кстати, а что такое mktemp?

А я потрахался, потрахался и перешел на линукс. Под ним все работает.

Alexey

Reply to
Alexey Boyko

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.