[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT NGINX 2/5] Add Makefile.uk



On 10/13/19 10:42 PM, Costin Lupu wrote:
> 
> 
> On 10/13/19 10:27 PM, Costin Lupu wrote:
>> Hi Mihai,
>>
>> Please see inline.
>>
>> On 10/9/19 1:42 AM, Mihai Pogonaru wrote:
>>> Signed-off-by: Mihai Pogonaru <pogonarumihai@xxxxxxxxx>
>>> ---
>>>  Makefile.uk | 214 
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>  1 file changed, 214 insertions(+)
>>>  create mode 100644 Makefile.uk
>>>
>>> diff --git a/Makefile.uk b/Makefile.uk
>>> new file mode 100644
>>> index 0000000..983343b
>>> --- /dev/null
>>> +++ b/Makefile.uk
>>> @@ -0,0 +1,214 @@
>>> +#  SPDX-License-Identifier: BSD-3-Clause
>>> +#
>>> +#  Nginx Makefile.uk
>>> +#
>>> +#  Authors: Mihai Pogonaru <pogonarumihai@xxxxxxxxx>
>>> +#           Costin Lupu <costin.lupu@xxxxxxxxx>
>>
>> I don't remember adding any line in this Makefile, so you can remove me
>> from the authors.
>>
>>> +#
>>> +#  Copyright (c) 2019, University Politehnica of Bucharest. All rights 
>>> reserved.
>>> +#
>>> +#  Redistribution and use in source and binary forms, with or without
>>> +#  modification, are permitted provided that the following conditions
>>> +#  are met:
>>> +#
>>> +#  1. Redistributions of source code must retain the above copyright
>>> +#     notice, this list of conditions and the following disclaimer.
>>> +#  2. Redistributions in binary form must reproduce the above copyright
>>> +#     notice, this list of conditions and the following disclaimer in the
>>> +#     documentation and/or other materials provided with the distribution.
>>> +#  3. Neither the name of the copyright holder nor the names of its
>>> +#     contributors may be used to endorse or promote products derived from
>>> +#     this software without specific prior written permission.
>>> +#
>>> +#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 
>>> IS"
>>> +#  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
>>> THE
>>> +#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
>>> PURPOSE
>>> +#  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS 
>>> BE
>>> +#  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
>>> +#  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
>>> +#  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
>>> +#  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
>>> +#  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>>> +#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 
>>> THE
>>> +#  POSSIBILITY OF SUCH DAMAGE.
>>> +#
>>> +#  THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>>> +#
>>> +
>>> +################################################################################
>>> +# Library registration
>>> +################################################################################
>>> +$(eval $(call addlib_s,libnginx,$(CONFIG_LIBNGINX)))
>>> +
>>> +LIBNGINX_VERSION = 1.15.6
>>> +LIBNGINX_URL = http://nginx.org/download/nginx-$(LIBNGINX_VERSION).tar.gz
> 
> We can use $(LIBNGINX_SUBDIR) helper here.
> 
>>> +LIBNGINX_PATCHDIR = $(LIBNGINX_BASE)/patches
>>> +
>>> +$(eval $(call fetch,libnginx,$(LIBNGINX_URL)))
>>> +$(eval $(call 
>>> patch,libnginx,$(LIBNGINX_PATCHDIR),nginx-$(LIBNGINX_VERSION)))
> 
> We can use $(LIBNGINX_SUBDIR) helper here.
> 
>>> +
>>> +################################################################################
>>> +# Sources
>>> +################################################################################
>>> +
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_BASE)/stubs.c

This line should be added when adding the stubs.c file, in another patch.

>>> +
>>> +################################################################################
>>> +# Helpers
>>> +################################################################################
>>> +LIBNGINX_SUBDIR = nginx-$(LIBNGINX_VERSION)
> 
> The LIBNGINX_SUBDIR helper should be defined before LIBNGINX_URL.
> 
>>> +LIBNGINX_SRC = $(LIBNGINX_ORIGIN)/$(LIBNGINX_SUBDIR)/src
>>> +
>>> +################################################################################
>>> +# Library includes
>>> +################################################################################
>>> +CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_BASE)/include
>>> +
>>> +CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/core
>>> +CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/event
>>> +CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/event/modules
>>> +CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/http
>>> +CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/http/modules
>>> +CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/http/modules/perl
>>> +CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/http/v2
>>> +CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/mail
>>> +CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/os/unix
>>> +CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/stream
>>
>> Do we really need to export these include paths for all the other
>> Unikraft libraries? Or is it just for nginx? If the latter, then we
>> should namespace the includes (e.g.
>> 's/CINCLUDES-$(CONFIG_...)/LIBNGINX_CINCLUDES-$(CONFIG_...)').
>>
>>> +
>>> +################################################################################
>>> +# Global flags
>>> +################################################################################
>>> +# Suppress some warnings to make the build process look neater
>>> +FLAGS = -W -Wall -Wpointer-arith -Werror
>>
>> Same here: 's/FLAGS/LIBNGINX_FLAGS' or 's/FLAGS/LIBNGINX_COMMON_FLAGS'.
>>
>>> +
>>> +FLAGS_SUPPRESS = -Wno-unused-parameter -Wno-unused-variable -Wno-nonnull   
>>>     \
>>> +-Wno-unused-but-set-variable -Wno-unused-label -Wno-char-subscripts        
>>>             \
>>> +-Wno-unused-function -Wno-missing-field-initializers -Wno-uninitialized    
>>>             \
>>> +-Wno-array-bounds -Wno-maybe-uninitialized -Wno-pointer-sign 
>>> -Wno-unused-value         \
>>> +-Wno-unused-macros -Wno-parentheses -Wno-implicit-function-declaration     
>>>             \
>>> +-Wno-missing-braces -Wno-endif-labels -Wno-implicit-function-declaration   
>>>     \
>>> +-Wno-type-limits -Wno-sign-compare
>>
>> Do we really need to suppress so many warnings? We do use in pcre port
>> the minimum suppression flags, as an example.
>>
>> And the same here, 's/FLAGS_SUPPRESS/LIBNGINX_SUPPRESS_FLAGS'.
>>
>>> +
>>> +LIBNGINX_CFLAGS-y +=  $(FLAGS)
>>> +LIBNGINX_CFLAGS-y +=  $(FLAGS_SUPPRESS)
>>> +
>>> +################################################################################
>>> +# Library sources
>>> +################################################################################
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_BASE)/ngx_modules.c
>>> +
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/nginx.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_array.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_buf.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_conf_file.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_connection.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_cpuinfo.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_crc32.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_crypt.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_cycle.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_file.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_hash.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_inet.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_list.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_log.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_md5.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_murmurhash.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_open_file_cache.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_output_chain.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_palloc.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_parse.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_parse_time.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_proxy_protocol.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_queue.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_radix_tree.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_rbtree.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_resolver.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_rwlock.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_sha1.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_shmtx.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_slab.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_spinlock.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_string.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_syslog.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_times.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/modules/ngx_select_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/ngx_event_accept.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/ngx_event.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/ngx_event_connect.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/ngx_event_pipe.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/ngx_event_posted.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/ngx_event_timer.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/ngx_event_udp.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_access_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_autoindex_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_browser_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_charset_filter_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_chunked_filter_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_empty_gif_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_fastcgi_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_geo_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_headers_filter_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_index_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_limit_conn_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_limit_req_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_log_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_map_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_memcached_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_mirror_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_not_modified_filter_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_proxy_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_range_filter_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_referer_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_scgi_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_split_clients_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_ssi_filter_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_static_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_sub_filter_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_try_files_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_upstream_hash_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_upstream_ip_hash_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_upstream_keepalive_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_upstream_least_conn_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_upstream_random_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_upstream_zone_module.c
>>> +LIBNGINX_SRCS-y += 
>>> $(LIBNGINX_SRC)/http/modules/ngx_http_userid_filter_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_uwsgi_module.c
>>
>> I think it's safe to move all the modules (as a group of sources) at the
>> end, after all the other groups of sources (core, event, http, os).
>>
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_copy_filter_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_core_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_header_filter_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_parse.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_postpone_filter_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_request_body.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_request.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_script.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_special_response.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_upstream.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_upstream_round_robin.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_variables.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_write_filter_module.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_alloc.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_channel.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_daemon.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_dlopen.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_errno.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_files.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_linux_init.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_linux_sendfile_chain.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_posix_init.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_process.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_process_cycle.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_readv_chain.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_recv.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_send.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_setaffinity.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_setproctitle.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_shmem.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_socket.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_time.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_udp_recv.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_udp_send.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_udp_sendmsg_chain.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_user.c
>>> +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_writev_chain.c
>>>

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.