Thread View: pl.comp.lang.c
8 messages
8 total messages
Started by Karpierz
Tue, 03 Feb 1998 07:48
Kopoty z makefile Borlanda
Author: Karpierz
Date: Tue, 03 Feb 1998 07:48
Date: Tue, 03 Feb 1998 07:48
23 lines
1308 bytes
1308 bytes
Witam Mam prosbe do specow od make Borlanda o pomoc w klopotach z makefile w BC++ 4.52. W pliku makefile mam zdefiniowany symbol VENDOR = Sun i chce go przekazac do kompilowanego zbioru ale w popstaci "Sun". W tej chwili jest tak (wzorem z VC++) bcc .. -DVENDOR=\"$(VENDOR)\" ale to nie dziala, a w pliku dostaje stala VENDOR == Sun a nie "Sun" Oczywiscie moge zdefiniowac makro: #define VENDOR_STR "\"##VENDOR##\"" ale problem polega na tym aby nie wprowadazc zmian w plikach zrodlowych. Nie pomagaja kombinacje typu VENDOR = "Sun" bcc .. -DVENDOR=$(VENDOR) -- Pozdrawiam Adam Karpierz mailto:karpierz@intertele.pl http://www.intertele.pl/users/karpierz
Re: Kopoty z makefile Borlanda
Author: Pawel Piotrowski
Date: Tue, 03 Feb 1998 08:25
Date: Tue, 03 Feb 1998 08:25
20 lines
1163 bytes
1163 bytes
Karpierz wrote: > Mam prosbe do specow od make Borlanda o pomoc w klopotach > z makefile w BC++ 4.52. > W pliku makefile mam zdefiniowany symbol > VENDOR = Sun > i chce go przekazac do kompilowanego zbioru ale w popstaci > "Sun". > W tej chwili jest tak (wzorem z VC++) > bcc .. -DVENDOR=\"$(VENDOR)\" Przed chwila sprawdzilem w make Borlanda vesrsja 3.7 i wersja 4.0, dzialaja z czyms takim: bcc .. -DVENDOR="$(VENDOR)" Fakt, jest to zbyt oczywiste aby przyszlo do glowy jako pierwsze :) Pozdrawiam Pawel
Re: Kopoty z makefile Borlanda
Author: Karpierz
Date: Tue, 03 Feb 1998 12:26
Date: Tue, 03 Feb 1998 12:26
47 lines
1923 bytes
1923 bytes
Pawel Piotrowski <pietras@sopot.lex.pl> napisal
> Karpierz wrote:
[...]
> > bcc .. -DVENDOR=\"$(VENDOR)\"
>
> Przed chwila sprawdzilem w make Borlanda vesrsja 3.7 i wersja 4.0,
> dzialaja z czyms takim:
>
> bcc .. -DVENDOR="$(VENDOR)"
>
> Fakt, jest to zbyt oczywiste aby przyszlo do glowy jako pierwsze :)
Dziekuje Ci za pomoc (i prosze o nia w dalszym ciagu :), lecz...
Tez probowalem, ale nie do konca jest ok...
Nieprecyzyjnie okreslilem poprzednio z czym mam klopot.
Otoz...
Z makefile tworze zbior konfiguracyjny powiedzmy zzz.cfg
w ktorym jest wszystko ok.
wyglada to tak:
-n\!obj -Ic:\bc5\include;..\win -c -WM
-DMT;_RTLDLL;VENDOR="Sun" -3 -d -w -v- -vi- -O2 -w-par -w-stu
ale potem w zbiorze ktory kompiluje z uzyciem tego zbioru
poprzez:
bcc +zzz.cfg zbior.c
dostaje stala VENDOR == Sun a nie "Sun"
i wywala mi sie dokladnie w instrukcjach typu:
funkcja("prefix" VENDOR "postfix");
bo po preprocesorze jest:
funkcja("prefix" Sun "postfix");
a nie tak jak powinno byc (czy raczej jak bym oczekiwal):
funkcja("prefix" "Sun" "postfix");
--
Pozdrawiam Adam Karpierz
mailto:karpierz@intertele.pl
http://www.intertele.pl/users/karpierz
Re: Kopoty z makefile Borlanda
Author: Pawel Piotrowski
Date: Tue, 03 Feb 1998 13:23
Date: Tue, 03 Feb 1998 13:23
38 lines
2037 bytes
2037 bytes
Karpierz wrote:
> -n\!obj -Ic:\bc5\include;..\win -c -WM
> -DMT;_RTLDLL;VENDOR="Sun" -3 -d -w -v- -vi- -O2 -w-par -w-stu
>
> ale potem w zbiorze ktory kompiluje z uzyciem tego zbioru
> poprzez:
>
> bcc +zzz.cfg zbior.c
>
> dostaje stala VENDOR == Sun a nie "Sun"
> i wywala mi sie dokladnie w instrukcjach typu:
>
> funkcja("prefix" VENDOR "postfix");
> bo po preprocesorze jest:
> funkcja("prefix" Sun "postfix");
> a nie tak jak powinno byc (czy raczej jak bym oczekiwal):
> funkcja("prefix" "Sun" "postfix");
Przyjrzalem sie temu (zaznaczam ze w BC5, ale pewnie w BC4.4 jest
podobnie).O ile definicje VENDOR masz w pliku konfiguracyjnym to nie
znalazlem wyjscia bo:
-DVENDOR="SUN" - odrzuca '"' i sytuacja taka jak opisujesz
-DVENDOR=\"SUN\" zostawia to tak jak jest (z backslashami) i blad
kompilacji
jezeli natomiast sefinicje przeniesiesz do linii wywolania programu
bcc +zz.cfg -DVENDOR=\"SUN\" a.c
to dziala poprawnie. Wic jezeli to jedyny tego typu string ta chyba po
problemie, jezelili masz ich duzo no to pronlem z dlugoscia commandline.
Tak na marginesie, problemy wywolywane sa przez preprocessor cpp.exe -
to na jego wyjsciu sa takie kwiatki (zjadanie '"'). Moze mozna sprobowac
podlozyc inny preprocessor (z innego pakietu ).
Pozdrawiam i powodzenia
Pawel
Re: Kopoty z makefile Borlanda
Author: Przemek Borys
Date: Tue, 03 Feb 1998 13:44
Date: Tue, 03 Feb 1998 13:44
12 lines
1140 bytes
1140 bytes
On 3 Feb 1998 12:26:46 GMT, Karpierz <karpierz@inter.intertele.pl> wrote:
>bo po preprocesorze jest:
>funkcja("prefix" Sun "postfix");
>a nie tak jak powinno byc (czy raczej jak bym oczekiwal):
>funkcja("prefix" "Sun" "postfix");
$(CC) blabla -DNAME="\"$(VENDOR)\"" blabla
To rozwiązanie, którego ja zwykle używam - i działa :)
--
( ) Przemek [http://rhea.ids.pl/~pborys]
Re: Kopoty z makefile Borlanda
Author: Michal Kaczmarczyk
Date: Tue, 03 Feb 1998 15:46
Date: Tue, 03 Feb 1998 15:46
55 lines
2137 bytes
2137 bytes
On 3 Feb 1998, Karpierz wrote:
> Nieprecyzyjnie okreslilem poprzednio z czym mam klopot.
> Otoz...
>
> Z makefile tworze zbior konfiguracyjny powiedzmy zzz.cfg
> w ktorym jest wszystko ok.
> wyglada to tak:
>
> -n\!obj -Ic:\bc5\include;..\win -c -WM
> -DMT;_RTLDLL;VENDOR="Sun" -3 -d -w -v- -vi- -O2 -w-par -w-stu
Mój plik konfiguracyjny a.cfg wygląda tak:
-DVENDOR="Sun"
> ale potem w zbiorze ktory kompiluje z uzyciem tego zbioru
> poprzez:
>
> bcc +zzz.cfg zbior.c
A ja tak (makefile):
a.exe:
bcc +a.cfg a.c
Mój program a.c wygląda tak:
main(){printf(VENDOR);}
Po zrobieniu make i uruchomieniu a.exe wypisuje Sun. Jak zmienię a.cfg na
-DVENDOR="\"Sun\""
To program wyświetla - zgodnie z oczekiwaniami - "Sun" (z cudzysłowami).
> dostaje stala VENDOR == Sun a nie "Sun"
> i wywala mi sie dokladnie w instrukcjach typu:
>
> funkcja("prefix" VENDOR "postfix");
>
> bo po preprocesorze jest:
>
> funkcja("prefix" Sun "postfix");
Niemożliwe...
> a nie tak jak powinno byc (czy raczej jak bym oczekiwal):
>
> funkcja("prefix" "Sun" "postfix");
A może powinno być tak: 'funkcja("prefix", "Sun", "postfix");'? ;-)
_______________________________________________________________________________
Michał Kaczmarczyk mailto:mik@iname.com http://student.uci.agh.edu.pl/~kaczmar
Re: Kopoty z makefile Borlanda
Author: Karpierz
Date: Tue, 03 Feb 1998 17:53
Date: Tue, 03 Feb 1998 17:53
42 lines
2426 bytes
2426 bytes
Pawel Piotrowski <pietras@sopot.lex.pl> napisal [...] > Przyjrzalem sie temu (zaznaczam ze w BC5, ale pewnie w > BC4.4 jest podobnie). Ku mojemu wielkiemu zdziwieniu okazalo sie ze nie. >O ile definicje VENDOR masz w pliku konfiguracyjnym to nie > znalazlem wyjscia bo: > -DVENDOR="SUN" - odrzuca '"' i sytuacja taka jak opisujesz > -DVENDOR=\"SUN\" zostawia to tak jak jest (z backslashami) i blad > kompilacji > > jezeli natomiast sefinicje przeniesiesz do linii wywolania programu > bcc +zz.cfg -DVENDOR=\"SUN\" a.c > to dziala poprawnie. Wic jezeli to jedyny tego typu string ta chyba po > problemie, jezelili masz ich duzo no to pronlem z dlugoscia commandline. > > Tak na marginesie, problemy wywolywane sa przez preprocessor cpp.exe - > to na jego wyjsciu sa takie kwiatki (zjadanie '"'). Moze mozna sprobowac > podlozyc inny preprocessor (z innego pakietu ). Dzieki Ci Pawle jeszcze raz za pomoc. Dzieki niej ustalilem wreszcie w czym rzecz. Otoz okazalo sie po prostu ze w BC5.02 jest najnormalniejszy w swiecie blad preprocesora w przypadku uzycia pliku konfiguracyjnego. Dla BC5.02 jest dokladnie tak jak napisales, natomiast w BC4.52 bez problemu poprawnie kompiluje zawarta w pliku konf. konstrukcje: -DVENDOR="SUN" (ale podobnie jak w 5.02 nie przyjmuje -DVENDOR=\"SUN\" co jest jedyna forma dopuszczalna dla linii komend zarowno w 4.52 jak i w 5.02) Sprawdzalem produkujac pliki *.i preprocesorow. Nie ma zadnych watpliwosci. Borland znow dal "popalic".... -- Pozdrawiam Adam Karpierz mailto:karpierz@intertele.pl http://www.intertele.pl/users/karpierz
Re: Kopoty z makefile Borlanda
Author: Karpierz
Date: Wed, 04 Feb 1998 10:53
Date: Wed, 04 Feb 1998 10:53
23 lines
1653 bytes
1653 bytes
Przemek Borys <pborys@p-soft.silesia.linux.org.pl> napisal
Karpierz <karpierz@inter.intertele.pl> wrote:
> >bo po preprocesorze jest:
> >funkcja("prefix" Sun "postfix");
> >a nie tak jak powinno byc (czy raczej jak bym oczekiwal):
> >funkcja("prefix" "Sun" "postfix");
>
> $(CC) blabla -DNAME="\"$(VENDOR)\"" blabla
>
> To rozwiązanie, którego ja zwykle używam - i działa :)
Tak, ale tylko z linii komend. Z pliku konfiguracyjnego nie dziala.
A gdy jest wiecej tego typu definicji to w lini komend ich nie
pomiescisz. W BC5.02 wiecej niz nie dziala.
Daje piekny komunikat: "Internal compiler error"...
Borland w 5.02 sknocil cos w preprocesorze.
Natomiast w 4.52 dziala z pliku ale tylko jako:
-DNAME="$(VENDOR)"
--
Pozdrawiam Adam Karpierz
mailto:karpierz@intertele.pl
http://www.intertele.pl/users/karpierz
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads