TARGETS = demo1 CC = g++ RM = rm CFLAGS = -L/usr/X11R6/lib -lX11 -lXpm -I/usr/X11R6/include -Wall -pedantic -O3 all: $(TARGETS) %: %.cc $(CC) $< -o $@ $(CFLAGS) strip $@ clean: $(RM) *.o $(TARGETS)
Ak nim skompilujem program demo1 ktory pouziva xlib, tak ju to samozrejme zahrnie. Ak ale demo1 je program ktory xlib vobec nepouziva (napr. konzolove hello world) tak linker tu xlib aj tak prilinkuje. Ako to spravit aby ju to neprilinkovalo ak nieje potrebna?
Ale tak aby som mohol toto makefile pouzivat na oba programy, nie ze ked idem robit konzolove demo tak v makefile vykomentujem -lX11.
ale tomu hovorim sila, ked je niekomu tazko upravit makefile podla potrieb programu
Mohol by si byt konkretnejsi. Ako to mam spravit?
>> ale tomu hovorim sila, ked je niekomu tazko upravit makefile podla potrieb programu
Je to program ktory disjunktne (len jedno z nich) vyuzica Xlib / FrameBuffer / Allegro / nic + to vsetko staticky alebo dynamicky linkovane, plus na freebsd dalsi makefile, uz na to mam 3 rozne makefile a to som doteraz linkoval len oproti xlib, teraz pribudol framebuffer, allegro a nic a s tym mam problem lebo ked dam napr. allegro tak mi to pribali aj xlib co je blbost...
alebo
alebo
skus nahliadnut do manualu GNU make
--disable-x
inak tiez sa priklanam k nazoru ze nech sa jedna verzia prilinkuje s tou kniznicou staticky alebo dynamicky a v cieli all nech sa vola aj clean. ale otazkou je ci sa s tym nieco vobec vyriesi. ten rozdiel v usetreni dvoch riadkov v makefile sa uz davno prehlusilo tliachanim o probleme.