Как скомпилировать плагин Makefile?

Я пытался скомпилировать пример плагина, приведенный в документации к Makefile ( https://www.gnu.org/software/make/manual/make.html):

#include <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>

#include <gnumake.h>

int plugin_is_GPL_compatible;

char *
gen_tmpfile(const char *nm, int argc, char **argv)
{
  int fd;

  /* Compute the size of the filename and allocate space for it.  */
  int len = strlen (argv[0]) + 6 + 1;
  char *buf = gmk_alloc (len);

  strcpy (buf, argv[0]);
  strcat (buf, "XXXXXX");

  fd = mkstemp(buf);
  if (fd >= 0)
    {
      /* Don't leak the file descriptor.  */
      close (fd);
      return buf;
    }

  /* Failure.  */
  fprintf (stderr, "mkstemp(%s) failed: %s\n", buf, strerror (errno));
  gmk_free (buf);
  return NULL;
}

int
mk_temp_gmk_setup ()
{
  /* Register the function with make name "mk-temp".  */
  gmk_add_function ("mk-temp", gen_tmpfile, 1, 1, 1);
  return 1;
}

но при запуске следующей строки: gcc -c mk_temp.c -fPIC я получаю следующее сообщение об ошибке:

mk_temp.c: 8: 21: фатальная ошибка: gnumake.h: нет такого файла или каталога

Я не смог найти этот файл на моем компьютере. Я даже скачал исходники Makefile 3.8.1 (ту же версию Makefile, которую я установил), но их там тоже нет.

Кто-нибудь знает, как получить этот файл или что я делаю не так?

Спасибо, Андрес.

1 ответ

Решение

v3.81 слишком стар gnumake.h появляется в GNU make 4.0

Другие вопросы по тегам