Желательно использовать автоматические генераторы параметров.
Для ncurses можно рассмотреть ncurses-config (есть в репозиториях Debian, к примеру). Пример вывода для этой утилиты на моей системе:
froex@froex-desktop:~$ ncurses5-config --cflags
froex@froex-desktop:~$ ncurses5-config --libs
-lncurses -ltinfo
froex@froex-desktop:~$ ncurses5-config --libdir
/usr/lib/x86_64-linux-gnu
froex@froex-desktop:~$ ncurses5-config --includedir
/usr/include
froex@froex-desktop:~$
Полный список команд можно посмотреть по вызову утилиты с флагом "--help".
Аналогичная утилита для Postgre называется
pg-config.
В своём Makefile выполняете эти утилиты и подставляете результат их работы в переменные. Синтаксис:
PGLIBS = $(shell pg-config --libs)
NCURSESLIBS = $(shell ncurses5-config --libs)
Подробнее
тут
Для возможности указания путей от других пользователей, используйте уже принятые и устоявшиеся имена переменных, как LDFLAGS, например (можно поискать их в интернетах). Это позволит пользователям не копать документации по вашей утилите, чтобы добавить флаги при вызове make.
На будущую перспективу можно изучить утилиты, вроде CMake, которые имеют свои технологии поиска путей библиотек и их подстановки.
Собрать deb и rpm пакет можно с помощью утилиты checkinstall (по умолчанию она не установлена, но есть в стандартных репозиториях Debian).