Thread View: pl.comp.os.linux.programowanie
3 messages
3 total messages
Started by Michał Kuratczyk
Wed, 13 Oct 1999 23:34
Przekazywanie zmiennych z Makefile'a do programu
Author: Michał Kuratczyk
Date: Wed, 13 Oct 1999 23:34
Date: Wed, 13 Oct 1999 23:34
8 lines
1189 bytes
1189 bytes
Jak można ustawioną w Makefile'u zmienną przekazać do programu w C?
Konkretnie chodzi mi o to, że chcę w nim zdefiniować numer wersji
programu, a w programie mieć zmienną o tej wartości.
--
Michał 'kura' Kuratczyk <kura@pld.org.pl>
GC{S,M} d- s+:+ a18 C+++ UL++ P L+++ E---
W N++ w-- O- PGP t-- X+ b- DI+ G e- h* y?
Re: Przekazywanie zmiennych z Makefile'a do programu
Author: Arkadiusz Nagórka
Date: Thu, 14 Oct 1999 07:23
Date: Thu, 14 Oct 1999 07:23
25 lines
1348 bytes
1348 bytes
kura@pld.org.pl (Michał Kuratczyk) wrote: >Jak można ustawioną w Makefile'u zmienną przekazać do programu w C? >Konkretnie chodzi mi o to, że chcę w nim zdefiniować numer wersji >programu, a w programie mieć zmienną o tej wartości. W Makefile VER = 1.1.1.1 i w regule dla pliku C plik.o: plik.c $(CC) $(CFLAGS) -DVER_NUM=$(VER) -I$(HEADER) -c $< plik.c Teraz w plik.c można badać,czy symbol VER_NUM jest zdefiniowany #ifdef VER_NUM /* zrób coś */ #endif -- Arkadiusz Nagórka nagorka@imipkm.pcz.czest.pl Politechnika Czestochowska Instytut Mechaniki i Podstaw Konstrukcji Maszyn
Re: Przekazywanie zmiennych z Makefile'a do programu
Author: Marcin Kasperski
Date: Thu, 14 Oct 1999 11:25
Date: Thu, 14 Oct 1999 11:25
39 lines
2436 bytes
2436 bytes
Micha³ Kuratczyk wrote: > > Jak mo¿na ustawion± w Makefile'u zmienn± przekazaæ do programu w C? > Konkretnie chodzi mi o to, ¿e chcê w nim zdefiniowaæ numer wersji > programu, a w programie mieæ zmienn± o tej warto¶ci. > VERSION=1.1 %.o : %.c cc -c -o $@ $^ -DVERSION=$(VERSION) i masz VERSION zdefiniowane jako makro. Jest jeszcze zupe³nie inna mo¿liwo¶æ (sam co¶ takiego robiê). Je¶li trzymasz ¼ród³a w RCS/CVS/inny narzêd¼ do kontroli wersji, mo¿esz wyci±gaæ do programu "s³ówka". Ja robiê co¶ takiego: - u¿ywam CVS - wersje "dystrybuowane" tagujê robi±c co¶ w stylu cvs tag myprog_1-0-0 - kompilacje "release" robiê nie w katalogu roboczym, tylko wyci±gaj±c kod "po tagu" (w ten sposób wiem na pewno "co budowa³em"), czyli robi±c gdzie¶ na boku cvs co -r myprog_1-0-0 progs/myprog i kompiluj±c tam¿e - w programie mam gdzie¶ $Name$ co CVS uprzejmie zamienia mi na $Name: myprog_1-0-0$ (wstawiaj±c nazwê tagu po którym wyci±ga³em) - parsujê sobie ten napis i mam wersjê programu Troszkê to wszystko skomplikowane ale mam w ten sposób absolutn± pewno¶æ, ¿e wersja programu któr± on raportuje jest zgodna z wersj± któr± sobie oznaczy³em w repozytorium. -- Marcin.Kasperski<at>softax.com.pl, Marcin.Kasperski<at>bigfoot.com -- Moje pogl±dy s± moimi pogl±dami, nikogo poza mn± nie reprezentuj±. -- ------------------------------------------------------------------ -- Osoba jest omegalizacj± ewolucji uniwersalnej na okre¶lonym -- odcinku etapowym (Teilhard de Chardin)
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