{"id":46,"date":"2008-11-07T13:18:12","date_gmt":"2008-11-07T03:48:12","guid":{"rendered":"http:\/\/www.clearchain.com\/blog\/?p=46"},"modified":"2010-08-16T10:40:22","modified_gmt":"2010-08-16T01:10:22","slug":"autotools","status":"publish","type":"post","link":"https:\/\/www.clearchain.com\/blog\/posts\/autotools","title":{"rendered":"Autotools Tips (configure.ac, Makefile.am, autoconf, automake, etc)"},"content":{"rendered":"<p>The Autotools build system is a great system. It consists of a number of tools. These are<\/p>\n<p><strong>aclocal<\/strong><sup><a href=\"http:\/\/www.clearchain.com\/wiki\/Autotools#_note-0\">[1]<\/a><\/sup>,\u00a0<strong>autoconf<\/strong><sup><a href=\"http:\/\/www.clearchain.com\/wiki\/Autotools#_note-1\">[2]<\/a><\/sup>,\u00a0<strong>automake<\/strong><sup><a href=\"http:\/\/www.clearchain.com\/wiki\/Autotools#_note-2\">[3]<\/a><\/sup>,\u00a0<strong>autoheader<\/strong><sup><a href=\"http:\/\/www.clearchain.com\/wiki\/Autotools#_note-3\">[4]<\/a><\/sup>, and to some extent\u00a0<strong>libtool<\/strong><sup><a href=\"http:\/\/www.clearchain.com\/wiki\/Autotools#_note-4\">[5]<\/a><\/sup><\/p>\n<p>These tools all work together to aid in building applications, libraries and providing a consistent framework for doing so. The problem however, is the tools are hard to use, poorly documented and the learning curve to getting things done is extremely high. Added to this, the tutorials on the web show only the basics of using the system and leave all the useful stuff to the user. The problem is the useful stuff is hard to work out.<\/p>\n<p><!--more--><\/p>\n<p>Hence this page is not about showing you yet another\u00a0<em>hello world<\/em> autotools setup. Instead it give you tips on how to use the autotools and what you can put in those highly cryptic config files:\u00a0<em>configure.ac<\/em>,\u00a0<em>Makefile.am<\/em>,<em>config.in<\/em>.<\/p>\n<h1><span class=\"mw-headline\">configure.ac\/configure.in Tips<\/span><\/h1>\n<p>This page lists common things that one often needs to do with autoconf. These can be placed either in the<em>configure.ac<\/em> file or if the project is old enough\u00a0<em>configure.in<\/em><\/p>\n<h2><span class=\"mw-headline\">Checking Which Operating System The User is Using<\/span><\/h2>\n<p>This check test to see if the build is for Linux, BSD, Mac, etc. This allows you to tune specific options depending on the platform. This test goes in the\u00a0<em>configure.ac<\/em> or\u00a0<em>configure.in<\/em> file (depending on what your using).<\/p>\n<pre>#\r\n# Platform specific setup\r\n#\r\n#############################\r\nAC_CANONICAL_HOST\r\n# Check for which host we are on and setup a few things\r\n# specifically based on the host\r\ncase $host_os in\r\n  darwin* )\r\n        # Do something specific for mac\r\n       \u00a0;;\r\n  linux*)\r\n        # Do something specific for linux\r\n       \u00a0;;\r\n   *BSD*)\r\n        # Do something specific for BSD\r\n       \u00a0;;\r\n    *)\r\n        #Default Case\r\n        AC_MSG_ERROR([Your platform is not currently supported])\r\n       \u00a0;;\r\nesac<\/pre>\n<h2><span class=\"mw-headline\">Setting CFlags\/CXXFlags\/LDFlags\/LIBS<\/span><\/h2>\n<p>In\u00a0<em>configure.ac<\/em> setting &#8216;<em>CFLAGS<\/em> and similar variables can be done quite easily. You simply set the variable. However, make sure if your aiming to support multiple platforms you do it in a way that is supported. For instance<em>\/bin\/sh<\/em> &#8211; the true borne shell doesn&#8217;t understands the\u00a0<em>+=<\/em> variable syntax. Hence something like:<\/p>\n<pre> CFLAGS+=\" something\"<\/pre>\n<p>will fail. You might say that everyone uses\u00a0<em>bash<\/em> but things like MacOSX doesn&#8217;t. Instead use the syntax:<\/p>\n<pre> CFLAGS=\"$CFLAGS something\"<\/pre>\n<p>It&#8217;ll work on any platform.<\/p>\n<h2><span class=\"mw-headline\">Passing A Variable from configure.ac to Makefile.am<\/span><\/h2>\n<p>One of the first things that I found myself needing to do was pass the content of a variable from\u00a0<em>configure.ac<\/em> to<em>Makefile.am<\/em>. Whilst this is burried in the autoconf documentation, here&#8217;s the 2 second version.<\/p>\n<p>In\u00a0<em>configure.ac<\/em> do something like:<\/p>\n<pre> GL_LIBS=\"-lGLU -lGL\"\r\n AC_SUBST(GL_LIBS)<\/pre>\n<p>Then in Makefile.am put:<\/p>\n<p>myapplication_bin_LDADD=@GL_LIBS@<br \/>\nThe\u00a0<strong>AC_SUBST<\/strong> tells autoconfig that a substitution should happen when building the Makefile (s). Hence<em>GL_LIBS<\/em> is expanded correctly. Of course, you probably want to do a much better check for your libs\u00a0\ud83d\ude42<\/p>\n<h2><span class=\"mw-headline\">Defining a #defining for use in C\/C++ code<\/span><\/h2>\n<p>In configure.ac<\/p>\n<pre> AC_DEFINE([MYDEFINE],[SOMEVALUE],[Description: Make #define MYDEFINE SOMEVALUE])<\/pre>\n<p>in config.h.in<\/p>\n<pre> #undef MYDEFINE<\/pre>\n<h2>Checking for C++ headers\/C++ Libraries, not pkg-config supported<\/h2>\n<pre>AC_LANG_PUSH([C++])\r\nAC_CHECK_HEADERS([boost\/foreach.hpp])\r\nAC_CHECK_LIBS([boost])\r\nAC_LANG_POP([C++])\r\n<\/pre>\n<h2>Checking the size of a type<\/h2>\n<pre>AC_CHECK_SIZEOF(uid_t)\r\nif test $ac_cv_sizeof_uid_t = \"4\"; then\r\n...\r\nfi\r\n<\/pre>\n<h2>Checking the endianess of a platform<\/h2>\n<p>\ufeff\ufeff\ufeff<\/p>\n<pre>\r\nAC_CHECK_HEADERS([endian.h],\r\n AC_TRY_COMPILE([#include &lt;endian.h&gt;], [switch (1) { case __LITTLE_ENDIAN: break; case __BYTE_ORDER: break; } ],[is_little_endian=0], [is_little_endian=1]),\r\n AC_MSG_ERR([Can't Determine Endianess])\r\n)\r\nif test $is_little_endian = 1 ; then\r\n...\r\nfi<\/pre>\n<h1><span class=\"mw-headline\">A Simple configure.ac<\/span><\/h1>\n<p>For those that just want a quick start, below is a simple\u00a0<strong>configure.ac<\/strong> file<\/p>\n<pre>#\r\n# A good reference for macros for this config file is at:\r\n# http:\/\/sourceware.org\/autobook\/autobook\/autobook_283.html\r\n\r\nAC_PREREQ(2.50)\r\n\r\nAC_INIT(PROJECTNAMEHERE, VERSIONHERE, EMAILADDRESSHERE)\r\n\r\n# Define where autogenerated build files such as 'missing'\r\n# should be located. This is also the location of any additional\r\n# m4 macros that are required\r\nAC_CONFIG_AUX_DIR(cfg)\r\n\r\n#\r\n# Init Automake subsystem\r\n#\r\nAM_INIT_AUTOMAKE(PROJECTNAMEHERE,VERSIONHERE)\r\nAM_CONFIG_HEADER(config.h)\r\n\r\n# Indicate this is a release build and that\r\n# dependancies for changes between Makefile.am and Makefile.in\r\n# should not be checked. This makes compiling faster. If you are working\r\n# on the library, run: .\/configure --enable-maintainer-mode to enable the dependancies\r\ndnl AM_MAINTAINER_MODE\r\n\r\n# Need the C++ Compiler, Installer and ranlib to strip libraries\r\n#\r\nAC_PROG_CC\r\nAC_PROG_CXX\r\nAC_PROG_INSTALL\r\nAC_C_CONST\r\nAC_C_INLINE\r\nAC_TYPE_SIZE_T\r\n\r\nAC_CONFIG_FILES([Makefile])\r\n\r\nAC_OUTPUT<\/pre>\n<h1><span class=\"mw-headline\">A Simple Makefile.am<\/span><\/h1>\n<p>Here&#8217;s a simple Makefile.am that can be used in the root directory of a project<\/p>\n<pre># Indicate this is not a GNU project and that\r\n# missing files should be automatically created\r\nAUTOMAKE_OPTIONS=foreign\r\n\r\n# Instruct aclocal to check the cfg directory for\r\n# extra macros\r\nACLOCAL_AMFLAGS=-I cfg\r\n\r\nINCLUDES= -I@top_srcdir@\r\n\r\n# Global C Flags\r\n#AM_CFLAGS = \r\n\r\n#EXTRA_DIST=libwcl.pc\r\n\r\n# Programs to build\r\nbin_PROGRAMS = evaluateTablet\r\n\r\n# Evaluate Table Application\r\nevaluateTablet_includedir=@top_srcdir@\r\nevaluateTablet_LDADD=-l\r\nevaluateTablet_SOURCES=.....<\/pre>\n<h1><span class=\"mw-headline\">References<\/span><\/h1>\n<ol class=\"references\">\n<li id=\"_note-0\"><a href=\"http:\/\/www.clearchain.com\/wiki\/Autotools#_ref-0\">\u2191<\/a> <a class=\"external free\" title=\"http:\/\/www.gnu.org\/software\/automake\/manual\/html_node\/Invoking-aclocal.html\" rel=\"nofollow\" href=\"http:\/\/www.gnu.org\/software\/automake\/manual\/html_node\/Invoking-aclocal.html\">http:\/\/www.gnu.org\/software\/automake\/manual\/html_node\/Invoking-aclocal.html<\/a><\/li>\n<li id=\"_note-1\"><a href=\"http:\/\/www.clearchain.com\/wiki\/Autotools#_ref-1\">\u2191<\/a> <a class=\"external free\" title=\"http:\/\/www.gnu.org\/software\/autoconf\/\" rel=\"nofollow\" href=\"http:\/\/www.gnu.org\/software\/autoconf\/\">http:\/\/www.gnu.org\/software\/autoconf\/<\/a><\/li>\n<li id=\"_note-2\"><a href=\"http:\/\/www.clearchain.com\/wiki\/Autotools#_ref-2\">\u2191<\/a> <a class=\"external free\" title=\"http:\/\/www.gnu.org\/software\/automake\/\" rel=\"nofollow\" href=\"http:\/\/www.gnu.org\/software\/automake\/\">http:\/\/www.gnu.org\/software\/automake\/<\/a><\/li>\n<li id=\"_note-3\"><a href=\"http:\/\/www.clearchain.com\/wiki\/Autotools#_ref-3\">\u2191<\/a> <a class=\"external free\" title=\"http:\/\/www.gnu.org\/software\/autoconf\/manual\/autoconf-2.57\/html_node\/autoconf_29.html\" rel=\"nofollow\" href=\"http:\/\/www.gnu.org\/software\/autoconf\/manual\/html_node\/index.html\">http:\/\/www.gnu.org\/software\/autoconf\/manual\/autoconf-2.57\/html_node\/autoconf_29.html<\/a><\/li>\n<li id=\"_note-4\"><a href=\"http:\/\/www.clearchain.com\/wiki\/Autotools#_ref-4\">\u2191<\/a> <a class=\"external free\" title=\"http:\/\/www.gnu.org\/software\/libtool\/\" rel=\"nofollow\" href=\"http:\/\/www.gnu.org\/software\/libtool\/\">http:\/\/www.gnu.org\/software\/libtool\/<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>The Autotools build system is a great system. It consists of a number of tools. These are aclocal[1],\u00a0autoconf[2],\u00a0automake[3],\u00a0autoheader[4], and to some extent\u00a0libtool[5] These tools all work together to aid in building applications, libraries and providing a consistent framework for doing so. The problem however, is the tools are hard to use, poorly documented and the<a href=\"https:\/\/www.clearchain.com\/blog\/posts\/autotools\"> <font size=-2>[..more..]<\/font><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21,7],"tags":[23,27,22,24,26,25],"class_list":["post-46","post","type-post","status-publish","format-standard","hentry","category-opensource","category-programming","tag-autoconf","tag-autoheader","tag-automake","tag-configure","tag-libtool","tag-make"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Autotools Tips (configure.ac, Makefile.am, autoconf, automake, etc) - ClearChain<\/title>\n<meta name=\"description\" content=\"The Autotools build system is a great system. It consists of a number of tools. These are aclocal,\u00a0autoconf,\u00a0automake,\u00a0autoheader, and to some\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.clearchain.com\/blog\/posts\/autotools\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin Close\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.clearchain.com\/blog\/posts\/autotools#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.clearchain.com\/blog\/posts\/autotools\"},\"author\":{\"name\":\"Benjamin Close\",\"@id\":\"https:\/\/www.clearchain.com\/blog\/#\/schema\/person\/aef6faa2c32188398139db9270ca1c98\"},\"headline\":\"Autotools Tips (configure.ac, Makefile.am, autoconf, automake, etc)\",\"datePublished\":\"2008-11-07T03:48:12+00:00\",\"dateModified\":\"2010-08-16T01:10:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.clearchain.com\/blog\/posts\/autotools\"},\"wordCount\":540,\"commentCount\":2,\"keywords\":[\"autoconf\",\"autoheader\",\"automake\",\"configure\",\"libtool\",\"make\"],\"articleSection\":[\"OpenSource\",\"Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.clearchain.com\/blog\/posts\/autotools#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.clearchain.com\/blog\/posts\/autotools\",\"url\":\"https:\/\/www.clearchain.com\/blog\/posts\/autotools\",\"name\":\"Autotools Tips (configure.ac, Makefile.am, autoconf, automake, etc) - ClearChain\",\"isPartOf\":{\"@id\":\"https:\/\/www.clearchain.com\/blog\/#website\"},\"datePublished\":\"2008-11-07T03:48:12+00:00\",\"dateModified\":\"2010-08-16T01:10:22+00:00\",\"author\":{\"@id\":\"https:\/\/www.clearchain.com\/blog\/#\/schema\/person\/aef6faa2c32188398139db9270ca1c98\"},\"description\":\"The Autotools build system is a great system. It consists of a number of tools. These are aclocal,\u00a0autoconf,\u00a0automake,\u00a0autoheader, and to some\",\"breadcrumb\":{\"@id\":\"https:\/\/www.clearchain.com\/blog\/posts\/autotools#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.clearchain.com\/blog\/posts\/autotools\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.clearchain.com\/blog\/posts\/autotools#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.clearchain.com\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Autotools Tips (configure.ac, Makefile.am, autoconf, automake, etc)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.clearchain.com\/blog\/#website\",\"url\":\"https:\/\/www.clearchain.com\/blog\/\",\"name\":\"ClearChain\",\"description\":\"-= Daily Happenings =-\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.clearchain.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.clearchain.com\/blog\/#\/schema\/person\/aef6faa2c32188398139db9270ca1c98\",\"name\":\"Benjamin Close\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.clearchain.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/19dca0aa372edfa901b93c556dfda2e78ad4434558fe4d139598e086315d714a?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/19dca0aa372edfa901b93c556dfda2e78ad4434558fe4d139598e086315d714a?s=96&d=mm&r=pg\",\"caption\":\"Benjamin Close\"},\"sameAs\":[\"http:\/\/www.clearchain.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Autotools Tips (configure.ac, Makefile.am, autoconf, automake, etc) - ClearChain","description":"The Autotools build system is a great system. It consists of a number of tools. These are aclocal,\u00a0autoconf,\u00a0automake,\u00a0autoheader, and to some","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.clearchain.com\/blog\/posts\/autotools","twitter_misc":{"Written by":"Benjamin Close","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.clearchain.com\/blog\/posts\/autotools#article","isPartOf":{"@id":"https:\/\/www.clearchain.com\/blog\/posts\/autotools"},"author":{"name":"Benjamin Close","@id":"https:\/\/www.clearchain.com\/blog\/#\/schema\/person\/aef6faa2c32188398139db9270ca1c98"},"headline":"Autotools Tips (configure.ac, Makefile.am, autoconf, automake, etc)","datePublished":"2008-11-07T03:48:12+00:00","dateModified":"2010-08-16T01:10:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.clearchain.com\/blog\/posts\/autotools"},"wordCount":540,"commentCount":2,"keywords":["autoconf","autoheader","automake","configure","libtool","make"],"articleSection":["OpenSource","Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.clearchain.com\/blog\/posts\/autotools#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.clearchain.com\/blog\/posts\/autotools","url":"https:\/\/www.clearchain.com\/blog\/posts\/autotools","name":"Autotools Tips (configure.ac, Makefile.am, autoconf, automake, etc) - ClearChain","isPartOf":{"@id":"https:\/\/www.clearchain.com\/blog\/#website"},"datePublished":"2008-11-07T03:48:12+00:00","dateModified":"2010-08-16T01:10:22+00:00","author":{"@id":"https:\/\/www.clearchain.com\/blog\/#\/schema\/person\/aef6faa2c32188398139db9270ca1c98"},"description":"The Autotools build system is a great system. It consists of a number of tools. These are aclocal,\u00a0autoconf,\u00a0automake,\u00a0autoheader, and to some","breadcrumb":{"@id":"https:\/\/www.clearchain.com\/blog\/posts\/autotools#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.clearchain.com\/blog\/posts\/autotools"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.clearchain.com\/blog\/posts\/autotools#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.clearchain.com\/blog"},{"@type":"ListItem","position":2,"name":"Autotools Tips (configure.ac, Makefile.am, autoconf, automake, etc)"}]},{"@type":"WebSite","@id":"https:\/\/www.clearchain.com\/blog\/#website","url":"https:\/\/www.clearchain.com\/blog\/","name":"ClearChain","description":"-= Daily Happenings =-","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.clearchain.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.clearchain.com\/blog\/#\/schema\/person\/aef6faa2c32188398139db9270ca1c98","name":"Benjamin Close","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.clearchain.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/19dca0aa372edfa901b93c556dfda2e78ad4434558fe4d139598e086315d714a?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/19dca0aa372edfa901b93c556dfda2e78ad4434558fe4d139598e086315d714a?s=96&d=mm&r=pg","caption":"Benjamin Close"},"sameAs":["http:\/\/www.clearchain.com"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.clearchain.com\/blog\/wp-json\/wp\/v2\/posts\/46","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.clearchain.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.clearchain.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.clearchain.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.clearchain.com\/blog\/wp-json\/wp\/v2\/comments?post=46"}],"version-history":[{"count":7,"href":"https:\/\/www.clearchain.com\/blog\/wp-json\/wp\/v2\/posts\/46\/revisions"}],"predecessor-version":[{"id":601,"href":"https:\/\/www.clearchain.com\/blog\/wp-json\/wp\/v2\/posts\/46\/revisions\/601"}],"wp:attachment":[{"href":"https:\/\/www.clearchain.com\/blog\/wp-json\/wp\/v2\/media?parent=46"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.clearchain.com\/blog\/wp-json\/wp\/v2\/categories?post=46"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.clearchain.com\/blog\/wp-json\/wp\/v2\/tags?post=46"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}