cmake и pkgconfig, дети, это такие штуки, чтобы все само находилось и само собиралось. Ну да вы знаете, что я об этом думаю. А вот и иллюстрация:

%build

%if 0%{?el4}
  export LDFLAGS="-L/usr/gnutls2/lib -L/lib -L/usr/evolution28/lib/ -L/usr/evolution28/lib64/"
  export CFLAGS="-I/usr/gnutls2/include -L/usr/gnutls2/lib"
  export GNUTLS_LIBS=/usr/gnutls2/lib
  export PKG_CONFIG_PATH=/usr/gnutls2/lib/pkgconfig/:/usr/evolution28/lib/pkgconfig:/usr/lib/pkgconfig/
  %ifarch x86_64
    export GLIB_LIBS=/usr/evolution28/lib64/libglib-2.0.so
    export PKG_CONFIG_PATH=/usr/evolution28/lib64/pkgconfig:/usr/lib64/pkgconfig/:/usr/gnutls2/lib/pkgconfig/
  %else
    export GLIB_LIBS=/usr/evolution28/lib/libglib-2.0.so
    export PKG_CONFIG_PATH=/usr/evolution28/lib/pkgconfig:/usr/lib/pkgconfig/
  %endif
%endif

%if 0%{?el5}
  export LDFLAGS="-L/usr/gnutls2/lib -L/lib -L/usr/evolution28/lib/ -L/usr/evolution28/lib64/"
  export CFLAGS="-I/usr/gnutls2/include -L/usr/gnutls2/lib"
  export GNUTLS_LIBS=/usr/gnutls2/lib
  export PKG_CONFIG_PATH=/usr/gnutls2/lib/pkgconfig/
%endif

cmake -DCMAKE_VERBOSE_MAKEFILE=ON \
        -DCMAKE_INSTALL_PREFIX=%{_prefix} \
        -DSYSCONFDIR=%{_sysconfdir} \
        -DLOCALSTATEDIR=%{_localstatedir}


%if 0%{?el4}0%{?el5}
perl -p -i -e "s[^include= ][include= -I/usr/gnutls2/include -L/usr/gnutls2/lib ]" openvas.tmpl
%endif


Блеать, и эти люди запрещают мне ковыряться в носу и жепят ебрило при виде старого доброго Makefile!
IMO, good C++ code is better than good C code, but bad C++ can be much, much worse than bad C code.

Почему именно так, существует много развернутых ответов. Я пришел для себя к простому выводу -- избегать крестов. Жопа не стоит свеч, извините.

Profile

arkenoi: (Default)
arkenoi

January 2017

S M T W T F S
1234567
891011121314
1516 1718192021
22232425262728
293031    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 23rd, 2017 03:55 am
Powered by Dreamwidth Studios