LINUX.ORG.RU

Configure. Нечто похожее на вопрос по Большому проекту


0

0

Здравствуйте.

Есть написанная программа, которая может выполнять одну и ту же функцию некоторыми путями - например, взаимодействие с SQL она умеет делать через либы MySQL или LIBPG - MySQL/PostgresQL.

В IDE среде я поставил на компиляцию сразу обе либы - но теперь, когда программу хотелось подвести к некоторому 'стандарту' столкнулся с тем, что абсолютно не понимаю взаимодействие CONFIGURE с программой. А цель такая - чтобы во время Configure нужно было указать с чем работать - mySQL или PG. Как я видел в подобных проектах - в исходном коде мне нужно быдет просто использовать #ifdef mySQL?PGsql ...

Кто бы мог расталковать этот вопрос или дать линк на статью - поскольку всю жизнь писались программы "под себя" и ни разу с этим не сталкивался.

Премного благодарен.

anonymous

в общих чертах - взаимодействие идет через config.h, который создается из config.h.in при ./configure. в этом хидере и содержаться все #define, которые тебе нужны.

подробнее - читай доки по automake/autoconf

посмотри в разделе "документация"

ananas ★★★★★
()

в доконку
не факт что прийдется делать
#ifdef mysql

проще придумть определенные функции для работ с sql
и написть два файла с этими функциями
mysql.c && postgresql.c

а в конфигуратрое в духе
default sql=mysql.c LD_FLAGS=mysql.lib
with-sql = postgresql LD_FLAGS=postgesql.lib

ну и компилировать по умолчанию mysql.c с линковкой mysql либ

а по просьбе with-sql=postresql
компилять с postgresql.c и ликовать с либами postgresql

Сорри за оьстракционизм. под рукой линуха нету а на память
automake+autoconf не помню

PS:конструкции ifdef хорошая штука но потом их в коде вырывать
не очень удобно.

Aleks_IZA
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.