Форум: "Основная";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Внизкомпиляция без IDE Найти похожие ветки
← →
ОлеЛу (2006-01-18 10:43) [0]Хочу(надо) компилировать проект без запуска Делфей, по возможности без установки всех своих компонент и прочего на чистой машине
← →
wal © (2006-01-18 10:49) [1]dcc32.exe
← →
Reindeer Moss Eater © (2006-01-18 10:53) [2]по возможности без установки всех своих компонент
Смотря что под этим понимается. BPL от своих библиотек все равно должны присутствовать на диске.
← →
ОлеЛу (2006-01-18 10:55) [3]с dcc32.exe не все получается...
не могу толком разобраться с параметрами...
точнее скомпиленый файл получается больше чем положено, похоже билдится со всеми пакетами, а мне надо чтоб без
← →
Reindeer Moss Eater © (2006-01-18 10:58) [4]>с dcc32.exe не все получается...
Ну а без dcc32 вообще ничего не получится.
← →
ОлеЛу (2006-01-18 11:11) [5]Поэтому я и спрашиваю...
пока компилится не так как надо, хочу узнать как правильно
как заставить смотреть на файд .dof&
← →
Reindeer Moss Eater © (2006-01-18 11:25) [6]Никак. Это опции для IDE
Смотри описание параметров командной строки dcc32.exe
← →
Reindeer Moss Eater © (2006-01-18 11:29) [7]-LUvcl;rtl;vclx;dbrtl;........
← →
ОлеЛу (2006-01-18 11:39) [8]
> -LUvcl;rtl;vclx;dbrtl;........
у меня в группе несколько проектов, и для каждого свой список пакетов...
не могу же я руками каждый раз переписывать командный файл для компиляции...
неужели никак нельзя подключить родной .dof файл?
← →
Плохиш © (2006-01-18 11:51) [9]
> ОлеЛу (18.01.06 11:39) [8]
Перед компиляцией делай переход в каталог с dpr. Всё остальное описано в справке по dcc.
← →
Reindeer Moss Eater © (2006-01-18 12:15) [10]Один dpr = один бат файл его собирающий.
← →
ОлеЛу (2006-01-18 12:15) [11]
> Перед компиляцией делай переход в каталог с dpr. Всё остальное
> описано в справке по dcc.
у меня в группе штук 10 проектов(ехе, длл, бпл) все в разных папочках, так если я буду делать (set dir ...) то файлики .dof подхватятся?
← →
ssk © (2006-01-18 15:52) [12]>ОлеЛу
вот, может немного не из той оперы, но вдруг поможет
http://www.delphiplus.org/articles/delphi/use_bpg_for_batch_compilation.html
← →
ОлеЛу (2006-01-18 16:50) [13]Спасибо всем, мне дали ссылочку где все подробно описано... буду проверять
http://www.delphiplus.org/articles/delphi/use_bpg_for_batch_compilation.html
← →
Alex Konshin © (2006-01-19 14:20) [14]dcc ищет файл <имя_проекта>.cfg в директории.
Файл .dof игнорируется. Да и не нужен он.
.cfg проще - там просто список опций.
То есть, все еще проще, чем написано в статье.
У меня тоже есть пример на эту тему.
Посмотри http://home.earthlink.net/~akonshin/files/Test.zip
Вообще-то почитай про makefile, все поймешь. Только учти, что это make от borland и он отличается от других. В справке по Delphi есть совсем чуть-чуть про него. Ну а потом с помощью метода научного тыка и какой-то матери добьешься того, чего нужно. Когда я уезжал из Питера 5 лет назад в проекте уже тогда было с десяток dll, exe и bpl. И все собиралось одним .bpg. Могу даже поискать, он у меня тут где-то должен быть.
← →
Alex Konshin © (2006-01-19 14:21) [15]Вот он какой:
#------------------------------------------------------------------------------
VERSION = BWS.01
#------------------------------------------------------------------------------
!ifndef ROOT
ROOT = $(MAKEDIR)\..
!endif
#------------------------------------------------------------------------------
OFFICE = $(SOURCEROOT)\Office
# Опции компилятора.
# Внимание: Для установки опций компилятора на Вашей машине нужно редактировать
# файл options.mak, а не этот файл.
# Опции отладки.
# Управляют генерацией кода выдачи OutputDebugString и других
# отладочных сообщений.
# Опция -DWS2_DLL_TRACE включает трассировку вызовов WS2_32.DLL (Winsock2)
#DEBUGOPTIONS = -Ddebug_acnt -Ddebug_ifs -Ddebug_xp_acnt
#DEBUGOPTIONS = -Ddebug
DEBUGOPTIONS = -Ddebug_acnt
#DEBUGOPTIONS = -Ddebug_acnt -Ddebug_flarp -Ddebug_arrays -Ddebug_arraygrid
#DEBUGOPTIONS = -Ddebug_arrays -Ddebug_arraygrid
# Общии опции компиляции, которые действуют во всех режимах.
# Опция -DWS2_DLL_DYNAMIC_LOAD включает динамическую линковку WS2_32.DLL (Winsock2)
OPT = -Q
# Локальные настройки опций компилятора.
!include $(SOURCEROOT)\options.mak
#------------------------------------------------------------------------------
!ifdef DEBUG
Debug = 1
!endif
!ifdef Debug
#CREATEMAP = 1
#DCCOPTIONS = $(OPT) -GD $(DEBUGOPTIONS) -B
CREATEMAP = 0
DCCOPTIONS = $(OPT) $(DEBUGOPTIONS) -B
!ifndef CFG
CFG = Debug
!endif
!else
CREATEMAP = 0
!ifndef CFG
CFG = Release
!endif
!if $(CFG)=="Debug"
#DCCOPTIONS = $(OPT) -GD $(DEBUGOPTIONS) -B
DCCOPTIONS = $(OPT) $(DEBUGOPTIONS) -B
!else
!ifdef REBUILD
DCCOPTIONS = $(OPT) -B
!else
DCCOPTIONS = $(OPT)
!endif
!endif
!endif
OUTPUT = $(CFG)
BIN = $(SOURCEROOT)\$(OUTPUT)\Bin
DCU = $(SOURCEROOT)\$(OUTPUT)\DCU
SVRBIN = $(SOURCEROOT)\$(OUTPUT)\FlarpServer
SVCBIN = $(SOURCEROOT)\$(OUTPUT)\FlarpService
BUILDOPTIONS = $(DCCOPTIONS) -LN"$(DCU)" -N"$(DCU)" -U"$(DCU)" -LE"$(BIN)" -E"$(BIN)"
MAKE = $(MAKEDIR)\make.exe -$(MAKEFLAGS) -f$**
BRCC = $(MAKEDIR)\brcc32.exe $**
DCC = $(DELPHI)\BIN\dcc32.exe $(DCCOPTIONS)
BUILD = $(DELPHI)\BIN\dcc32.exe $(BUILDOPTIONS)
MAKEBPL = $(DCC) $(@B).dpk
MAKEDLL = $(DCC) $(@B).dpr
MAKEEXE = $(DCC) $(@B).dpr
#------------------------------------------------------------------------------
FlarpDLLs = {$(BIN)\}Invoice.dll \
{$(BIN)\}Payment.dll \
{$(BIN)\}Trade.dll \
{$(BIN)\}Analyze.dll \
{$(BIN)\}Control.dll
PROJECTS = {$(SOURCEROOT)\}GenVerInfo.exe \
{$(BIN)\}FlarpArrays.bpl \
{$(BIN)\}Acnt.bpl \
{$(BIN)\}FlarpControls.bpl \
{$(BIN)\}Flarp.bpl \
{$(BIN)\}Office.exe \
{$(SVCBIN)\}AcntMSSQL.dll \
{$(SVCBIN)\}FlarpMSSQL.dll \
{$(SVCBIN)\}FlarpService.exe \
{$(SVRBIN)\}FlarpServer.exe \
{$(SOURCEROOT)\$(OUTPUT)\}xp_acnt.dll
#------------------------------------------------------------------------------
!ifdef TARGETDLL
$(TARGETDLL).dll: {$(BIN)\}Flarp.bpl
echo ==== $@ ====
cd $(OFFICE)\Operations\$(@B)
$(BUILD) $(@B).dpr
!else
.SUFFIXES: .dll .src
{$(OFFICE)\Operations\}.src.dll:
echo ==== $@ ====
cd $(OFFICE)\Operations\$(@B)
$(BUILD) $(@B).dpr
MakeSrc::
for /R $(OFFICE)\Operations\ %I in (*.dpr) do @echo %I> $(OFFICE)\Operations\%~nI.src
# for /R $(OFFICE)\Operations\ %s in (*.dpr) do @copy /Y %s $(OFFICE)\Operations\*.src > nul
FlarpDLLs:: {$(BIN)\}Flarp.bpl {$(BIN)\}Office.exe MakeSrc $(FlarpDLLs)
!endif
dirs::
if not exist $(SOURCEROOT)\$(OUTPUT) mkdir $(SOURCEROOT)\$(OUTPUT)
if not exist $(BIN) mkdir $(BIN)
if not exist $(DCU) mkdir $(DCU)
if not exist $(SVCBIN) mkdir $(SVCBIN)
if not exist $(SVRBIN) mkdir $(SVRBIN)
Acnt.bpl: dirs VerInfo {$(BIN)\}FlarpArrays.bpl
echo ==== $@ ====
cd $(SOURCEROOT)\AcntCore
$(BUILD) $(@B).dpk
copy $(BIN)\$(@F) $(SVCBIN)\>nul
copy $(BIN)\$(@F) $(SVRBIN)\>nul
FlarpArrays.bpl: dirs
echo ==== $@ ====
cd $(SOURCEROOT)\FlarpArrays
$(BUILD) $(@B).dpk
copy $(BIN)\$(@F) $(SVCBIN)\>nul
copy $(BIN)\$(@F) $(SVRBIN)\>nul
FlarpService.exe: dirs {$(BIN)\}Acnt.bpl
echo ==== $@ ====
cd $(SOURCEROOT)\FlarpService
$(DCC) -LN"$(DCU)" -N"$(DCU)" -U"$(DCU)" -LE"$(SOURCEROOT)\$(OUTPUT)$(SVCBIN)" -E"$(SVCBIN)" $(@B).dpr
if .$(CREATEMAP) == .1 copy $(BIN)\*.map $(SVCBIN)\>nul
FlarpServer.exe: dirs {$(BIN)\}Acnt.bpl {$(BIN)\}FlarpControls.bpl
echo ==== $@ ====
cd $(SOURCEROOT)\FlarpServer
$(DCC) -LN"$(DCU)" -N"$(DCU)" -U"$(DCU)" -LE"$(SVRBIN)" -E"$(SVRBIN)" $(@B).dpr
if .$(CREATEMAP) == .1 copy $(BIN)\*.map $(SVRBIN)\>nul
FlarpControls.bpl: dirs {$(BIN)\}FlarpArrays.bpl
echo ==== $@ ====
cd $(SOURCEROOT)\FlarpControls
$(BUILD) $(@B).dpk
copy $(BIN)\$(@F) $(SVRBIN)\>nul
Flarp.bpl: dirs {$(BIN)\}Acnt.bpl {$(BIN)\}FlarpControls.bpl
echo ==== $@ ====
cd $(OFFICE)\shares
$(BUILD) $(@B).dpk
Office.exe: dirs {$(BIN)\}Flarp.bpl
echo ==== $@ ====
cd $(OFFICE)
$(BUILD) $(@B).dpr
AcntMSSQL.dll: {$(BIN)\}Acnt.bpl
echo ==== $@ ====
cd $(SOURCEROOT)\AcntMSSQL
$(DCC) -LN"$(DCU)" -N"$(DCU)" -U"$(DCU)" -LE"$(SVCBIN)" -E"$(SVCBIN)" $(@B).dpr
copy $(SVCBIN)\$(@F) $(SVRBIN)\>nul
FlarpMSSQL.dll: {$(BIN)\}Acnt.bpl
echo ==== $@ ====
cd $(SOURCEROOT)\FlarpMSSQL
$(DCC) -LN"$(DCU)" -N"$(DCU)" -U"$(DCU)" -LE"$(SVCBIN)" -E"$(SVCBIN)" $(@B).dpr
copy $(SVCBIN)\$(@F) $(SVRBIN)\>nul
xp_acnt.dll: dirs
echo ==== $@ ====
cd $(SOURCEROOT)\xp_acnt
$(DCC) -LN"$(DCU)" -N"$(DCU)" -U"$(DCU)" -U"$(SOURCEROOT)\AcntMSSQL" -U"$(SOURCEROOT)\AcntCore" -U"$(SOURCEROOT)\FlarpArrays" -LE"$(SOURCEROOT)\$(OUTPUT)" -E"$(SOURCEROOT)\$(OUTPUT)" $(@B).dpr
GenVerInfo.exe: dirs {$(BIN)\}FlarpArrays.bpl {$(SOURCEROOT)\GenVerInfo\}GenVerInfo.dpr
echo ==== GenVerInfo ====
cd $(SOURCEROOT)\GenVerInfo
$(DELPHI)\BIN\dcc32.exe -Q -B -LN"$(DCU)" -N"$(DCU)" -U"$(DCU)" -E"$(SOURCEROOT)" $(SOURCEROOT)\GenVerInfo\GenVerInfo.dpr
VerInfo:: {$(SOURCEROOT)\}GenVerInfo.exe {$(SOURCEROOT)\}VerInfo.ver
cd $(SOURCEROOT)
$(SOURCEROOT)\GenVerInfo.exe "VerInfo.ver"
AcntCore:: dirs VerInfo Arrays {$(BIN)\}Acnt.bpl
FlarpArrays:: dirs {$(BIN)\}FlarpArrays.bpl
Flarp:: dirs {$(BIN)\}Flarp.bpl
FlarpControls:: dirs {$(BIN)\}FlarpControls.bpl
Office:: dirs {$(BIN)\}Office.exe
FlarpService:: dirs {$(SVCBIN)\}FlarpService.exe {$(SVCBIN)\}AcntMSSQL.dll {$(SVCBIN)\}FlarpMSSQL.dll
FlarpServer:: dirs {$(SVRBIN)\}FlarpServer.exe {$(SVCBIN)\}AcntMSSQL.dll {$(SVCBIN)\}FlarpMSSQL.dll
All:: dirs $(PROJECTS) FlarpDLLs
default:: dirs $(PROJECTS) FlarpDLLs
#.IGNORE:
.SILENT :
clear:
-del $(BIN)\*.exe
-del $(BIN)\*.dll
-del $(BIN)\*.bpl
-del $(BIN)\*.map
-del $(DCU)\*.dcu
-del $(DCU)\*.dcp
-del $(SVCBIN)\*.exe
-del $(SVCBIN)\*.bpl
-del $(SVCBIN)\*.dll
-del $(SVCBIN)\*.map
-del $(SVRBIN)\*.exe
-del $(SVRBIN)\*.bpl
-del $(SVRBIN)\*.dll
-del $(SVRBIN)\*.map
← →
Alex Konshin © (2006-01-19 14:26) [16]Я его привел потому, что в нем можно много чего подсмотреть.
← →
Джо © (2006-01-19 15:20) [17]> [16] Alex Konshin © (19.01.06 14:26)
Спасибо. Помню, что вы его когда-то выкладывали, а найти за давностью не смог. Действительно, есть что посмотреть :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.041 c