Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.054 c
2-1138478666
Николай_
2006-01-28 23:04
2006.02.19
Подскажите пожалуйста,как наиболее эффективно реализовать поиск


4-1133734761
Alex72
2005-12-05 01:19
2006.02.19
Способы защиты от эмуляции кода


1-1137497255
evg1
2006-01-17 14:27
2006.02.19
Создание визуальных объектов во время выполнения проги


15-1138358472
Rust007
2006-01-27 13:41
2006.02.19
Учебник


2-1138977069
буржуй
2006-02-03 17:31
2006.02.19
Как мне удалить себя внутри себя?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский