РЕДАКТИРОВАТЬ: Возможно, я не был изначально понятен.Как установить символическую ссылку на один из двух установленных исполняемых файлов?
В «сделать установку» Я хочу, чтобы пользователь установка, чтобы быть в состоянии установить символическую ссылку, «привет», что ссылки либо прог, который статически связаны между собой, «helloStatic» или прога, которая динамически связаны между собой, "helloShared." См. Мой ответ.
Я в настоящее время сборки и установки:
- HelloShared, что мой main.o связан с моей общей библиотеки libsay.la
- HelloStatic, что мой main.o связан с моей статической библиотеки libsay.a
Я также хотел бы установить Hello, что будет символической ссылкой на HelloShared или HelloStatic.
Я предполагаю, что выбор будет сделан путем предоставления возможности либо настроить, либо сделать?
В основном я интересуюсь * nix или cygwin, хотя, как это сделать при установке Windows, было бы неплохо.
Recap, я хочу, чтобы два встроенных исполняемых файла были установлены и, кроме того, символическая ссылка на исполняемый файл, который инсталлятор хочет быть «нормальной» версией. В идеале также используется ссылка по умолчанию, если ни один не выбран.
Начал с некоторых исходных файлов, я создал configure.ac с autoscan, а затем при необходимости создавал их.
Мой рабочий процесс:
- autorconf -i
- ./configure
- сделать
После макияжа я получаю:
$ file hello*
helloShared: Bourne-Again shell script, ASCII text executable, with very long lines
helloStatic: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=f56d94fbc40359aced749759231d3e7ae39587a0, not stripped
Мои файлы:
$ tree -a
├── configure.ac
├── lib
│ ├── say.c
│ └── say.h
├── m4
├── Makefile.am
└── src
└── main.c
3 directories, 5 files
##########
$ cat configure.ac
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT([Hello], [0.1])
AC_CONFIG_SRCDIR([lib/say.h])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([foreign subdir-objects -Wall -Werror])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_MACRO_DIRS([m4])
# Checks for programs.
AC_PROG_CC
AM_PROG_AR
LT_INIT
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_OUTPUT
##########
$ cat Makefile.am
ACLOCAL_AMFLAGS = -I m4
pkglib_LTLIBRARIES = libsay.la
libsay_la_SOURCES = \
lib/say.c
libsay_la_CFLAGS = -I lib
pkglib_LIBRARIES = libsay.a
libsay_a_SOURCES = \
lib/say.c
libsay_a_CFLAGS = -I lib
include_HEADERS = \
lib/say.h
bin_PROGRAMS = helloShared helloStatic
helloShared_SOURCES = \
src/main.c
helloShared_CFLAGS = -I lib
helloShared_LDADD = libsay.la
helloStatic_SOURCES = \
src/main.c
helloStatic_CFLAGS = -I lib
helloStatic_LDADD = libsay.a